Closed Bug 1594282 Opened 2 years ago Closed 2 years ago

Audit nsIDocShellTreeItem usage in nsDocShell::GetDocShellEnumerator

Categories

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

defect

Tracking

()

RESOLVED FIXED
Fission Milestone M6

People

(Reporter: djvj, Unassigned)

References

(Blocks 1 open bug)

Details

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

https://searchfox.org/mozilla-central/rev/8b7aa8af652f87d39349067a5bc9c0256bf6dedc/docshell/base/nsDocShell.cpp#1966

This just casts (DocShell*)this to an nsIDocShellTreeItem to add to the enumerator list.

This needs to change but the bigger issue is just fixing the nsDocShellEnumerator implementation to use BrowsingContext to traverse the tree instead (stopping at process boundaries in the tree).

The users of nsDocShellEnumerator need to be fixed separately, but this function's fix itself will be trivial - obtaining a BrowsingContext to add instead of a tree-item.

Tentatively moving all bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to the "?" triage milestone.

This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:

0ee3c76a-bc79-4eb2-8d12-05dc0b68e732

Fission Milestone: --- → ?
Fission Milestone: ? → M6
Priority: -- → P2

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 nsDocShell::GetDocShellEnumerator → Audit nsIDocShellTreeItem usage in nsDocShell::GetDocShellEnumerator

nsDocShell::GetDocShellEnumerator has been removed.

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