browser_httphash6.js crashes in e10s mode

RESOLVED FIXED in mozilla36

Status

()

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: mossop, Assigned: mossop)

Tracking

unspecified
mozilla36
Points:
5
Dependency tree / graph
Bug Flags:
firefox-backlog +
in-testsuite +
qe-verify -

Firefox Tracking Flags

(e10sm5+)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Assignee)

Description

4 years ago
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]
(Assignee)

Updated

4 years ago
Blocks: 1080785
Assignee: nobody → dtownsend+bugmail
tracking-e10s: ? → m5+
(Assignee)

Updated

4 years ago
Status: NEW → ASSIGNED
Iteration: --- → 36.1
Points: --- → 5
Flags: qe-verify-
Flags: firefox-backlog+

Updated

4 years ago
Iteration: 36.1 → 36.2
(Assignee)

Updated

4 years ago
Blocks: 1082871
(Assignee)

Comment 1

4 years ago
Created attachment 8515253 [details] [diff] [review]
patch

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+
(Assignee)

Comment 3

4 years ago
Created attachment 8516173 [details] [diff] [review]
patch rev 2

(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)
(Assignee)

Updated

4 years ago
Blocks: 1093586
Attachment #8516173 - Flags: review?(bmcbride) → review+
https://hg.mozilla.org/mozilla-central/rev/ea6f00d19dca
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla36

Updated

4 years ago
Blocks: 1094694

Updated

4 years ago
Blocks: 1094706
Depends on: 1095297

Updated

4 years ago
Depends on: 1096178
You need to log in before you can comment on or make changes to this bug.