Closed Bug 947030 Opened 11 years ago Closed 7 years ago

[e10s] Ghostery addon does not block tracker requests with e10s

Categories

(Firefox :: Extension Compatibility, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
e10s + ---

People

(Reporter: cpeterson, Unassigned)

References

Details

(Keywords: addon-compat, dogfood, Whiteboard: [e10s-top-addon] triaged)

STR:
1. Install Ghostery addon: https://addons.mozilla.org/en-US/firefox/addon/ghostery/
2. Configure Ghostery to block all tracking cookies.

RESULT:
Ghostery is supposed to add its icon to the Australis toolbar, but does not when e10s is enabled!

STR:
3. Then browse to a website using trackers (such as any news website).

RESULT:
Check your Firefox preferences for a list of your cookies and you will see that Ghostery did not block any tracking cookies.
tracking-e10s: --- → +
When I run Nightly 31 with Ghostery, I see the following errors in the Browser Console (and stderr):

console.error: ghostery: 
  Message: TypeError: window is null
  Stack:
    getFrames@resource://gre/modules/commonjs/sdk/window/utils.js:384:3
applyOnExistingDocuments/<@resource://gre/modules/commonjs/sdk/page-mod.js:191:7
applyOnExistingDocuments@resource://gre/modules/commonjs/sdk/page-mod.js:185:3
PageMod@resource://gre/modules/commonjs/sdk/page-mod.js:130:7
@resource://gre/modules/commonjs/sdk/core/disposable.js:48:56
dispatch@resource://gre/modules/commonjs/method/core.js:119:5
Disposable<.initialize@resource://gre/modules/commonjs/sdk/core/disposable.js:69:17
constructor@resource://gre/modules/commonjs/sdk/core/heritage.js:145:23
loadDOMScannerPageMod@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:823:3
loadPageMods@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:993:2
init@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:1585:2
@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:2161:1
CuddlefishLoader/options<.load@resource://gre/modules/commonjs/sdk/loader/cuddlefish.js:129:9
run@resource://gre/modules/commonjs/sdk/addon/runner.js:149:9
startup/<@resource://gre/modules/commonjs/sdk/addon/runner.js:113:7
Handler.prototype.process@resource://gre/modules/Promise-backend.js:863:11
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise-backend.js:742:7

*************************
A coding exception was thrown in a Promise resolution callback.

Full message: TypeError: window is null
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise
Full stack: getFrames@resource://gre/modules/commonjs/sdk/window/utils.js:384:3
applyOnExistingDocuments/<@resource://gre/modules/commonjs/sdk/page-mod.js:191:7
applyOnExistingDocuments@resource://gre/modules/commonjs/sdk/page-mod.js:185:3
PageMod@resource://gre/modules/commonjs/sdk/page-mod.js:130:7
@resource://gre/modules/commonjs/sdk/core/disposable.js:48:56
dispatch@resource://gre/modules/commonjs/method/core.js:119:5
Disposable<.initialize@resource://gre/modules/commonjs/sdk/core/disposable.js:69:17
constructor@resource://gre/modules/commonjs/sdk/core/heritage.js:145:23
loadDOMScannerPageMod@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:823:3
loadPageMods@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:993:2
init@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:1585:2
@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:2161:1
CuddlefishLoader/options<.load@resource://gre/modules/commonjs/sdk/loader/cuddlefish.js:129:9
run@resource://gre/modules/commonjs/sdk/addon/runner.js:149:9
startup/<@resource://gre/modules/commonjs/sdk/addon/runner.js:113:7
Handler.prototype.process@resource://gre/modules/Promise-backend.js:863:11
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise-backend.js:742:7

*************************
console.error: ghostery: 
  Message: TypeError: window is null
  Stack:
    getFrames@resource://gre/modules/commonjs/sdk/window/utils.js:384:3
applyOnExistingDocuments/<@resource://gre/modules/commonjs/sdk/page-mod.js:191:7
applyOnExistingDocuments@resource://gre/modules/commonjs/sdk/page-mod.js:185:3
PageMod@resource://gre/modules/commonjs/sdk/page-mod.js:130:7
@resource://gre/modules/commonjs/sdk/core/disposable.js:48:56
dispatch@resource://gre/modules/commonjs/method/core.js:119:5
Disposable<.initialize@resource://gre/modules/commonjs/sdk/core/disposable.js:69:17
constructor@resource://gre/modules/commonjs/sdk/core/heritage.js:145:23
loadDOMScannerPageMod@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:823:3
loadPageMods@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:993:2
init@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:1585:2
@resource://firefox-at-ghostery-dot-com/ghostery/lib/background.js:2161:1
CuddlefishLoader/options<.load@resource://gre/modules/commonjs/sdk/loader/cuddlefish.js:129:9
run@resource://gre/modules/commonjs/sdk/addon/runner.js:149:9
startup/<@resource://gre/modules/commonjs/sdk/addon/runner.js:113:7
Handler.prototype.process@resource://gre/modules/Promise-backend.js:863:11
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise-backend.js:742:7
Summary: [e10s] Ghostery addon does not block trackers or add its icon to the toolbar → [e10s] Ghostery addon does not block trackers: exception was thrown in a Promise resolution callback: TypeError: window is null
Pete, Ghostery does not seem to be compatible with multi-process Firefox (e10s). If you have any questions about e10s support, just drop by the #e10s IRC channel on irc.mozilla.org. MDN also has a good introduction:

https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox
Whiteboard: [e10s-top-addon]
Adding "dogfood" keyword so this bug shows up on the e10s wiki's list of known issues:

https://wiki.mozilla.org/Electrolysis#Known_Issues
Keywords: dogfood
The developer has been contacted through AMO.
It appears to me that this problem may have been resolved. In particular, I saw the console messages above, then updated Ghostery, and now I don't see them in the Browser Console any more. 

More specifics: 
- Firefox Nightly 37.0a1 (2014-12-03)
- Mac OS X 10.9 Mavericks
- Ghostery (just updated to) 5.4.1
Thanks for testing, clements. I just tested Ghoserty 5.4.1 with e10s and Nightly 37. I no longer see the console errors, but Ghostery still does not seem to block tracking cookies (using the steps in comment 0).
Summary: [e10s] Ghostery addon does not block trackers: exception was thrown in a Promise resolution callback: TypeError: window is null → [e10s] Ghostery addon does not block tracking cookies with e10s
I seem to have a curious way of activating ghostery. Specifically, going to ghostery.com and clicking on the "Install" link downloads and installs the add-on (and requests my permission), and after this, it appears to me that Ghostery successfully blocks trackers *but only until I restart Firefox*.

1) Start FF nightly 37.0a1 (2014-12-03).
2) See ghostery icon with *no* number bubble next to it.
3) Click on ghostery icon, see message "this page was not scanned".
4) Go to Ghostery.com. Click the "Install" (or was it "Install for Firefox"?) button.
5) Click agree twice to give Ghostery permission to install.
6) See ghostery icon disappear and then appear again with number bubble.

Ghostery now seems to be active, and remains so until next FF restart.

This is a pretty acceptable workaround for me, though it's clearly still broken.
Simpler workaround discovered:

1) Open about:addons.
2) Click "disable" for Ghostery
3) Click "enable" for Ghostery
Telemetry data indicates that ghostery is throwing a javascript exception regularly in  utils.js  on line 234.
I can confirm that toggling disable/enable helps
I can no longer reproduce this bug using 41.0a1 (2015-05-11) + Ghostery 5.4.5 + Mac OS X 10.10.3. I conjecture that it's been fixed.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
Sorry, when I resolved as WORKFORME I was looking at cookies per bug title, but those are probably blocked by Firefox itself thanks to its default 3rd party cookies policy.

Unfortunately Ghostery is just unable to block anything it is supposed to, as can be observed by loading any page containing trackers configured to be blocked and looking at the Net panel of the Web Console (ctrl+K).
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Summary: [e10s] Ghostery addon does not block tracking cookies with e10s → [e10s] Ghostery addon does not block tracker requests with e10s
Whiteboard: [e10s-top-addon] → [e10s-top-addon] triaged
Flags: needinfo?(sescalante)
Ghostery has been ported to a WebExtension, so the latest version has a completely different code base. If testing is showing a problem, then its probably a different issue and a new bug should be fixed.
talked to Giorgio - he resolved with webextensions
Status: REOPENED → RESOLVED
Closed: 9 years ago7 years ago
Flags: needinfo?(sescalante)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.