Closed Bug 1516482 Opened 6 years ago Closed 6 years ago

Change the way to propagate user gesture activation flag in order to adapt the Fission model

Categories

(Core :: DOM: Core & HTML, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla66
Fission Milestone M4
Tracking Status
firefox66 --- fixed

People

(Reporter: alwu, Assigned: alwu)

References

Details

Attachments

(3 files)

In present e10s model, we traverse the document tree and set the documents' flag, which won't be available under the Fission model, because documents from different origins would be in the different process. Therefore, we should travese the browsing context tree instead and have a mechanism to set all documents' flag across different processes.
Implemented in bug1470346, the propagation rule is to activate all documents within the tab no matter they're in same origin or not.
In order to adapt Fission model, we should traverse browsing context tree and do the flag propagation because we might not be available to traverse all documents in same document tree within one process. In addition, the propagation rule of user gesture activation is that if one document is activated by user gesture, we would activate all the other documents which are in same document tree.
When the docShell is not presented in current browsing context, that means the document is in other content process. Therefore, we would notify chrome browsing context in order to find the corresponding browser context which is in other process and set the document's flag.
Priority: -- → P2
Attachment #9033459 - Attachment description: Bug 1516482 - part1 : traverse browing context tree to set documents' user gesture activation flag. → Bug 1516482 - part1 : save user gesture activation flag in top level browsing context
Attachment #9033460 - Attachment description: Bug 1516482 - part2 : update document's user gesture activation flag across IPC. → Bug 1516482 - part2 : update user gesture activation flag across IPC.
As the user gesture activation flag is a flag which is used to reflect whether the corresponding document of browsing context has been activated by user or not, we should reset the flag when the top level window changes its document.

In order to finish all related works, we would need a sync engine to allow us sync info between different browsing contexts, that will be implemented in bug 1519151.

As we're lacking of such sync mechanism now, I would only implement sync the info between browsing contexts which are in child and parent process.

Blocks: 1519229
Blocks: 1520037
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8a59ebb819c2 part1 : save user gesture activation flag in top level browsing context r=nika https://hg.mozilla.org/integration/autoland/rev/da7cefd6569a part2 : update user gesture activation flag across IPC. r=nika https://hg.mozilla.org/integration/autoland/rev/ea8b794f04d8 part3 : reset user gesture activation flag when top level document changes. r=nika
Blocks: 1520912
Blocks: 1531114
Component: DOM → DOM: Core & HTML

Retroactively moving fixed bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to an appropriate Fission Milestone.

This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:

0ee3c76a-bc79-4eb2-8d12-05dc0b68e732

Fission Milestone: --- → M4
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: