Index: include.preload.js |
=================================================================== |
--- a/include.preload.js |
+++ b/include.preload.js |
@@ -76,25 +76,22 @@ |
ext.backgroundPage.sendMessage({type: "add-sitekey", token: attr}); |
} |
-function hasInlineURL(element, attribute) |
-{ |
- var value = element.getAttribute(attribute); |
- return value == null || /^\s*(javascript:|about:|$)/i.test(value); |
-} |
- |
function isInlineFrame(element) |
{ |
- switch (element.localName) |
+ var contentDocument; |
+ try |
{ |
- case "iframe": |
- return hasInlineURL(element, "src") || element.hasAttribute("srcdoc"); |
- case "frame": |
- return hasInlineURL(element, "src"); |
- case "object": |
- return hasInlineURL(element, "data") && element.contentDocument; |
- default: |
- return false; |
+ contentDocument = element.contentDocument; |
} |
+ catch (e) |
+ { |
+ return false; // third-party |
+ } |
+ |
+ if (!contentDocument) |
+ return false; // not a frame |
+ |
+ return contentDocument.location.protocol == "about:"; |
kzar
2015/02/09 16:52:11
Previously we would return true if the URL started
Sebastian Noack
2015/02/09 17:10:00
Previously, we checked against the raw attribute v
|
} |
function resolveURL(url) |