Audit nsIDocShellTreeItem usage in AttachContainerRecurse & DetachContainerRecurse in layout/base/nsDocumentViewer.cpp
Categories
(Core :: DOM: Navigation, task, P3)
Tracking
()
Fission Milestone | M7 |
People
(Reporter: djvj, Unassigned)
References
(Blocks 2 open bugs)
Details
(Whiteboard: [rm-docshell-tree-item:session-history])
In file layout/base/nsDocumentViewer.cpp
Recursive method that walk entire docshell subtree under a docshell tree item.
Called by Session-History logic within nsDocumentViewer::Open
Core logic: Accesses ContentViewer, then Document
- Sets the attaches the containing DocShell to it.
- Sets the ForwardingContainer field for the PresShell for the child window.
Relatively rare operation.
Change to using BrowsingContext.
Collect all out-of-process children across entire tree while traversing.
If list is non-empty, then send IPC to chrome with list of browsingcontext ids, and have chrome process broadcast this to all relevant processes.
Chrome process waits on all child process updates and responds when they are done.
Original sender process blocks on response from chrome process.
Comment 1•5 years ago
|
||
Kannan says replacing nsIDocShellTreeItem calls should block enabling Fission in Nightly (M6).
Updated•5 years ago
|
Comment 2•5 years ago
|
||
Moving to Layout.
Please 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 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
|
||
The priority flag is not set for this bug.
:jwatt, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 4•4 years ago
|
||
Auditing whether this use of nsIDocShellTreeItem breaks when Fission is enabled blocks Fission Nightly.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 6•4 years ago
|
||
This will be handled/fixed in bug 1671510 for BFCache redesign.
Updated•4 years ago
|
Description
•