Closed Bug 1516482 Opened 10 months ago Closed 9 months 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
Tracking Status
firefox66 --- fixed

People

(Reporter: alwu, Assigned: alwu)

References

(Blocks 1 open bug)

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.

See Also: → 1519151
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
You need to log in before you can comment on or make changes to this bug.