| 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); |