Audit nsIDocShellTreeItem usage in nsGlobalWindowOuter::FocusOuter in dom/base/nsGlobalWindowOuter.cpp
Categories
(Core :: DOM: Navigation, defect, P3)
Tracking
()
Fission Milestone | Future |
People
(Reporter: djvj, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [rm-docshell-tree-item:hard])
In file dom/base/nsGlobalWindowOuter.cpp
Gets the root DocShell tree item, and its outer window, and checks if it’s the same as the active DOM window.
Retrieves parent window and sets its focus target to the element holding this window, if a parent document exists.
Needs change to user code to handle case where parent is not in process, or to send IPC to parent.
Most efficient approach is to send IPC to chrome which dispatches appropriate sub-IPCs to all relevant processes.
Existing implementation should be moved to using BrowsingContext and WindowContext.
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
|
||
:hsivonen, this appears to be related to focus management, which you've been working on porting to Fission. Could you look into making nsGlobalWindowOuter::FocusOuter
work when fission is enabled?
Comment 3•5 years ago
|
||
I need do deal with bug 1614297 and bug 1615548 first. I'll take a look at this after unless someone else gets to this more quickly.
Comment 4•5 years ago
|
||
It turns out that I want to deal with content-process uses of mActiveWindow
first.
Comment 5•5 years ago
|
||
Hmm. This is broader in scope than that. Will spin off a bug blocking this one.
Comment 6•5 years ago
|
||
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 7•5 years ago
|
||
Auditing whether this use of nsIDocShellTreeItem breaks when Fission is enabled blocks Fission Nightly.
Comment 8•5 years ago
|
||
This should work fine when Fission is enabled. Could be written without nsIDocShellTreeItem
using bug 1633723.
Comment 9•5 years ago
|
||
(In reply to Henri Sivonen (:hsivonen) from comment #8)
This should work fine when Fission is enabled. Could be written without
nsIDocShellTreeItem
using bug 1633723.
Thanks. In that case, this bug doesn't need to block shipping Fission MVP. I'll move this bug to a future milestone when we remove the nsIDocShellTreeItem interface entirely (someday).
Updated•2 years ago
|
Description
•