Closed Bug 1587423 Opened 6 years ago Closed 5 years ago

Audit usage of nsIDocShellTreeItem in nsFocusManager::WindowRaised

Categories

(Core :: DOM: Navigation, defect, P2)

defect

Tracking

()

RESOLVED INVALID
Fission Milestone M6b

People

(Reporter: djvj, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [rm-docshell-tree-item:hard])

https://searchfox.org/mozilla-central/rev/7cc0f0e89cb40e43bf5c96906f13d44705401042/dom/base/nsFocusManager.cpp#662

This code sets the visibility of the window associated with the tree owner, which may be out of process. I spent some time trying to verify that this always get called in contexts where the base window is in-process, but it doesn't seem like that's the case.

It seems like IPC at this point might be the best option for now. Calls into this code should not be frequent (windows raising and being lowered), and the callers don't seem to be easily amenable to lifting this logic (set visibility on base window) into a different location - at the very least it would be confusing.

Whiteboard: [rm-docshell-tree-item:hard]
Fission Milestone: --- → M5
Priority: -- → P2
Fission Milestone: M5 → Future

Kannan says replacing nsIDocShellTreeItem calls should block enabling Fission in Nightly (M6).

Fission Milestone: Future → M6

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 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

Summary: Fix usage of nsIDocShellTreeItem in nsFocusManager::WindowRaised → Audit usage of nsIDocShellTreeItem in nsFocusManager::WindowRaised

Auditing whether this use of nsIDocShellTreeItem breaks when Fission is enabled blocks Fission Nightly.

Fission Milestone: M6 → M6b

In general, getting the tree owner is probably fine, even with Fission enabled, so closing.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.