Closed Bug 1023326 Opened 6 years ago Closed 6 years ago

switch to using frame scripts for tab content events (e10s)

Categories

(Add-on SDK Graveyard :: General, defect, P1)

defect

Tracking

(Not tracked)

RESOLVED FIXED
mozilla33

People

(Reporter: Tomislav, Assigned: Tomislav)

References

(Depends on 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

with e10s, content events from inside the tab (DOMContentLoaded, pageshow, load) don't bubble-up from the child process to the parent. 

we need to attach a frame script to every tab, which will add event listeners and forward them as messages to the Tab instances in the parent.
since frame scripts can't be unloaded, and we don't want to load multiple instances of them, one for each SDK addon (duplicate messages, problems with registration/deregistration of listeners), i used a JSM module to guarantee a singleton instance shared by all SDK addons.
this makes all of our tabs and windows tests passing (505/505 asserts) without the e10s flag (e10s mode has other issues), but has an ugly hack to work around a special case of the first tab in a new window receiving double DOM ready events, once for the 'about:blank' document, and another for the real thing.

i'm pretty sure it is related to bz's bug 993015 comment 11, but i'm not sure why our current code doesn't also get them. 

the only difference is that old code is listening for events on the <browser> element, and the new one is using `docShell.chromeEventHandler`, which i'm unsure of what kind of object it really is.

it looks like some code in the platform is filtering out DOM events from that first synthetic document, preventing them to bubble-up to the tab's browser?
Depends on: 1024105
Assignee: nobody → tomica+amo
Depends on: 1024632
highest number of hacks per line added.. :\
Attachment #8437734 - Attachment is obsolete: true
Attachment #8441097 - Flags: review?(rFobic)
Comment on attachment 8441097 [details] [review]
Link to Github pull-request: https://github.com/mozilla/addon-sdk/pull/1510

hey Dave, can you please take this review?

this is roughly Irakli's design [1], adapted by me in a couple of iterations with him, so i'm sure he will give f+

https://etherpad.mozilla.org/e10s-jetpack
Attachment #8441097 - Flags: review?(rFobic)
Attachment #8441097 - Flags: review?(dtownsend+bugmail)
Attachment #8441097 - Flags: feedback?(rFobic)
Attachment #8441097 - Flags: review?(dtownsend+bugmail) → review+
Commits pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/2c1e3f2af275c92d96ef28caadfa81268525d6f7
bug 1023326 - use frame scripts for tab content events

https://github.com/mozilla/addon-sdk/commit/c600e47eae2b777a15dd564c3913e0883795124e
Merge pull request #1510 from zombie/1023326-tab-events

bug 1023326 - use frame scripts for tab content events, r=@Mossop
Commits pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/51160a756155178f6beb98816bc8f1f0a8c996d9
Revert "bug 1023326 - use frame scripts for tab content events"

https://github.com/mozilla/addon-sdk/commit/493b7b4e8d4c645181e07ef5c73a5019f7e38743
Merge pull request #1531 from mozilla/revert-1510-1023326-tab-events

Revert "bug 1023326 - use frame scripts for tab content events"
fix for chrome-privileged documents and a brittle test due to short page.
Attachment #8449085 - Flags: review?(dtownsend+bugmail)
Attachment #8449085 - Flags: review?(dtownsend+bugmail) → review+
Commits pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/1aa1908203fb5e8708a06e8b8c571c316c886af3
Revert "Revert "bug 1023326 - use frame scripts for tab content events""

https://github.com/mozilla/addon-sdk/commit/f2d78f71a9c8f9279fb24493e28ee4ddeeb3a833
Merge pull request #1536 from mozilla/revert-1531-revert-1510-1023326-tab-events

Revert "Revert "bug 1023326 - use frame scripts for tab content events"", r=me
Commits pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/70ed20fa72b709afb423f4c352a2d9e185c2ebdf
bug 1023326 - fix chrome tabs, brittle test

https://github.com/mozilla/addon-sdk/commit/4e2fa36267b58938d1f40daa27e2c83d362c4fba
Merge pull request #1535 from zombie/1023326-tab-events

bug 1023326 - fix chrome tabs, brittle test, r=@Mossop
Attachment #8441097 - Flags: feedback?(rFobic) → feedback+
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla33
You need to log in before you can comment on or make changes to this bug.