Index: lib/child/elemHide.js |
=================================================================== |
--- a/lib/child/elemHide.js |
+++ b/lib/child/elemHide.js |
@@ -28,51 +28,28 @@ try |
delete proto.Components; |
} |
catch (e) |
{ |
Cu.reportError(e); |
} |
let {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {}); |
-let {PrivateBrowsingUtils} = Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm") |
let {Utils} = require("utils"); |
+let {getFrames, isPrivate} = require("child/utils"); |
let messageID = 0; |
// The allowXBL binding below won't have any effect on the element. For elements |
// that should be hidden however we don't return any binding at all, this makes |
// Gecko stop constructing the node - it cannot be shown. |
const allowXBL = "<bindings xmlns='http://www.mozilla.org/xbl'><binding id='dummy' bindToUntrustedContent='true'/></bindings>"; |
const hideXBL = "<bindings xmlns='http://www.mozilla.org/xbl'/>"; |
-function getFrames(window) |
-{ |
- let frames = []; |
- while (window) |
- { |
- let frame = { |
- location: window.location.href, |
- sitekey: null |
- }; |
- |
- let documentElement = window.document && window.document.documentElement; |
- if (documentElement) |
- frame.sitekey = documentElement.getAttribute("data-adblockkey") |
- |
- if (window == window.parent) |
- frame.privateBrowsing = PrivateBrowsingUtils.isWindowPrivate(window); |
- |
- frames.push(frame); |
- window = (window != window.parent ? window.parent : null); |
- } |
- return frames; |
-} |
- |
/** |
* about: URL module used to count hits. |
* @class |
*/ |
let AboutHandler = |
{ |
classID: Components.ID("{55fb7be0-1dd2-11b2-98e6-9e97caf8ba67}"), |
classDescription: "Element hiding hit registration protocol handler", |
@@ -170,21 +147,23 @@ HitRegistrationChannel.prototype = { |
try { |
listener.onDataAvailable(this, context, stream, 0, stream.available()); |
} catch(e) {} |
try { |
listener.onStopRequest(this, context, Cr.NS_OK); |
} catch(e) {} |
}; |
+ let window = Utils.getRequestWindow(this); |
addMessageListener(responseMessage, processResponse); |
sendAsyncMessage("AdblockPlus:ElemHideHit", { |
responseMessage, |
key: this.key, |
- frames: getFrames(Utils.getRequestWindow(this)) |
+ frames: getFrames(window), |
+ isPrivate: isPrivate(window) |
}); |
}, |
asyncOpen2: function(listener) |
{ |
if (!this.loadInfo.triggeringPrincipal.equals(Utils.systemPrincipal)) |
throw Cr.NS_ERROR_FAILURE; |
this.asyncOpen(listener, null); |