Audit usage of nsIDocShellTreeItem in PendingFullscreenChangeList::Iterator::Iterator
Categories
(Core :: DOM: Navigation, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: djvj, Assigned: smacleod)
References
(Blocks 1 open bug)
Details
(Whiteboard: [rm-docshell-tree-item:validate])
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
This is related to full-screen code, and is being fixed in bug https://bugzilla.mozilla.org/show_bug.cgi?id=1505916
Updated•5 years ago
|
Reporter | ||
Updated•5 years ago
|
Reporter | ||
Updated•5 years ago
|
Updated•5 years ago
|
Comment 1•5 years ago
|
||
Kannan says replacing nsIDocShellTreeItem calls should block enabling Fission in Nightly (M6).
Comment 2•5 years ago
|
||
Fission fullscreen bug 1505916 was fixed in Firefox 71 (October 2019), but PendingFullscreenChangeList still uses nsIDocShellTreeItem.
We need to audit this use of the nsIDocShellTreeItem interface. With Fission enabled, Documents and nsDocShells for related frames, such as subframes and parent documents, may not be available within the current process and the corresponding nsIDocShellTreeItem methods will return null.
If this code is broken with Fission, fixing it blocks enabling Fission is Nightly.
If this code works as-is with Fission, we don't need to remove this usage of nsIDocShellTreeItem until when we remove nsIDocShellTreeItem entirely (bug 1607591) after we ship Fission MVP.
Fission documentation about replacing nsIDocShellTree Item:
https://wiki.mozilla.org/Project_Fission/DocShell_Tree_Replace
:farre's presentation with examples of replacing nsIDocShellTreeItem with BrowsingContext, WindowContext, SyncedContexts, and BrowsingContextGroup:
https://docs.google.com/presentation/d/1K4j6ngty64TZjJNS5qH-MBoOm3TI2dJedVsbH8jUhKE/edit#slide=id.g6e35225e5d_1_264
Comment 3•5 years ago
|
||
Auditing whether this use of nsIDocShellTreeItem breaks when Fission is enabled blocks Fission Nightly.
Comment 4•4 years ago
|
||
Alphan, what functionality does it affect?
Comment 5•4 years ago
|
||
Here is another usage of GetInProcessRootTreeItem in fullscreen code.
https://searchfox.org/mozilla-central/rev/03794edd6edcc3fc1e222de966cb27256ce08998/dom/base/Document.cpp#13765,13854
I will also try to rewrite it in this bug.
Comment 6•4 years ago
|
||
(In reply to Alphan Chen [:alchen] from comment #5)
Here is another usage of GetInProcessRootTreeItem in fullscreen code.
https://searchfox.org/mozilla-central/rev/03794edd6edcc3fc1e222de966cb27256ce08998/dom/base/Document.cpp#13765,13854
I will also try to also it in this bug.
FYI, the function GetRootWindow in Document.cpp gets called only in the parent process since bug 1585078.
Comment 7•4 years ago
|
||
Comment 8•4 years ago
|
||
The goal of PendingFullscreenChangeList
is to get a list of fullscreen changes which are initiated under the same top level window. It's iterated when we get informed that widget change has finished, and process all the changes within the same window.
So as far as it still goes through all fullscreen changes within the same top level window in the fission process, it would be enough. There is no point to exactly preserve what it does.
Comment 9•4 years ago
|
||
i.e. it should go through all fullscreen changes which share the same widget fullscreen notifications from the parent process.
Updated•4 years ago
|
Comment 10•4 years ago
|
||
Comment 11•4 years ago
|
||
bugherder |
Description
•