Closed Bug 1084558 Opened 7 years ago Closed 7 years ago

browser_httphash6.js crashes in e10s mode

Categories

(Toolkit :: Add-ons Manager, defect)

defect
Not set
normal
Points:
5

Tracking

()

RESOLVED FIXED
mozilla36
Iteration:
36.2
Tracking Status
e10s m5+ ---

People

(Reporter: mossop, Assigned: mossop)

References

Details

Attachments

(1 file, 1 obsolete file)

Somehow we end up passing a window CPOW to Services.ww.openWindow.

0 Installer_checkAllDownloaded() ["file:///Users/dave/mozilla/build/nightly-debug/dist/NightlyDebug.app/Contents/Resources/components/amWebInstallListener.js":186]
    this = [object Object]
1 Installer_onDownloadEnded(aInstall = [object Object]) ["file:///Users/dave/mozilla/build/nightly-debug/dist/NightlyDebug.app/Contents/Resources/components/amWebInstallListener.js":240]
    this = [object Object]
2 AMI_callInstallListeners(aMethod = "onDownloadEnded", aExtraListeners = [object Object],[object Object], aArgs = [object Object]) ["resource://gre/modules/AddonManager.jsm":1493]
    this = [object Object]
3 AMP_callInstallListeners(aArgs = onDownloadEnded,[object Object],[object Object],[object Object], [object Object],[object Object], [object Object]) ["resource://gre/modules/AddonManager.jsm":2443]
    this = [object Object]
4 downloadCompleted_getVisibleAddonForID(aAddon = null) ["resource://gre/modules/addons/XPIProvider.jsm":5621]
5 anonymous(aArgs = ) ["resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js":146]
6 getRepositoryAddon(aAddon = null, aCallback = [function]) ["resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js":127]
    this = [object Object]
7 anonymous(addonDB = [object Map]) ["resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js":1071]
    this = [object Object]
8 anonymous() ["resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js":865]
    this = [object Object]
9 anonymous() ["resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js":744]
    this = [object Object]
Blocks: 1080785
Assignee: nobody → dtownsend+bugmail
Status: NEW → ASSIGNED
Iteration: --- → 36.1
Points: --- → 5
Flags: qe-verify-
Flags: firefox-backlog+
Iteration: 36.1 → 36.2
Blocks: 1082871
Attached patch patch (obsolete) — Splinter Review
Well there is a quick fix here but the problem stems from the add-on manager using a number of APIs that in non-e10s mode take DOM windows and in e10s mode take browser elements. This causes some confusion so I decided to unify to use browser elements everywhere.
Attachment #8515253 - Flags: review?(bmcbride)
Comment on attachment 8515253 [details] [diff] [review]
patch

Review of attachment 8515253 [details] [diff] [review]:
-----------------------------------------------------------------

::: toolkit/mozapps/extensions/amWebInstallListener.js
@@ +181,5 @@
> +          // These parts may throw if the browser has already been closed.
> +          if (this.browser.contentWindow)
> +            parentWindow = this.browser.contentWindow;
> +          let tabbrowser = this.browser.getTabBrowser();
> +          tabbrowser.selectedTab = tabbrowser.getTabForBrowser(this.browser);

:(

I wish we'd invest in building proper implementation-agnostic APIs, instead of continually adding more technical debt because of e10s.
Attachment #8515253 - Flags: review?(bmcbride) → review+
Attached patch patch rev 2Splinter Review
(In reply to Blair McBride [:Unfocused] from comment #2)
> Comment on attachment 8515253 [details] [diff] [review]
> patch
> 
> Review of attachment 8515253 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: toolkit/mozapps/extensions/amWebInstallListener.js
> @@ +181,5 @@
> > +          // These parts may throw if the browser has already been closed.
> > +          if (this.browser.contentWindow)
> > +            parentWindow = this.browser.contentWindow;
> > +          let tabbrowser = this.browser.getTabBrowser();
> > +          tabbrowser.selectedTab = tabbrowser.getTabForBrowser(this.browser);
> 
> :(
> 
> I wish we'd invest in building proper implementation-agnostic APIs, instead
> of continually adding more technical debt because of e10s.

Good news, we already have and I just didn't know about it.
Attachment #8515253 - Attachment is obsolete: true
Attachment #8516173 - Flags: review?(bmcbride)
Blocks: 1093586
Attachment #8516173 - Flags: review?(bmcbride) → review+
https://hg.mozilla.org/mozilla-central/rev/ea6f00d19dca
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Blocks: 1094694
Blocks: 1094706
Depends on: 1095297
Depends on: 1096178
You need to log in before you can comment on or make changes to this bug.