Open Bug 1597445 Opened 5 years ago Updated 2 years ago

Audit nsIDocShellTreeItem usage in mozilla::EventStateManager::WalkESMTreeToHandleAccessKey in dom/events/EventStateManager.cpp

Categories

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

defect

Tracking

()

Fission Milestone Future

People

(Reporter: djvj, Unassigned)

References

(Blocks 1 open bug)

Details

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

In file dom/events/EventStateManager.cpp

Code is already instrumented to handle remote processes.

But usage of DocShell tree instead of BrowsingContext tree remains.

Usage is mostly iterating recursively on the in-process tree (children and parents), and calling the same method.

Called from HandleAccessKey called from BrowserChild (mostly more confirmation this has been made fission-compatible).

Change DocShell tree usage to BrowsingContext intead.

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

Fission Milestone: --- → M6
Priority: -- → P3

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

Summary: Fix uses of mozilla::EventStateManager::WalkESMTreeToHandleAccessKey in dom/events/EventStateManager.cpp → Audit nsIDocShellTreeItem usage in mozilla::EventStateManager::WalkESMTreeToHandleAccessKey in dom/events/EventStateManager.cpp

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

Fission Milestone: M6 → M6b
Fission Milestone: M6b → Future
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.