Closed Bug 1585069 Opened 1 year ago Closed 4 months ago

Audit usage of nsIDocShellTreeItem in Document::StartDocumentLoad

Categories

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

defect

Tracking

()

RESOLVED WORKSFORME
Fission Milestone M6b

People

(Reporter: djvj, Unassigned)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [rm-docshell-tree-item:sync-state])

https://searchfox.org/mozilla-central/rev/153feabebc2d13bb4c29ef8adf104ec1ebd246ae/dom/base/Document.cpp#3045

This code propagates CSP flags from parent document to the child. Namely, the content of the following fields in the parent:

mBlockAllMixedContentPreloads
mBlockAllMixedContent
mUpgradeInsecurePreloads
mUpgradeInsecure

These flags are not sensitive, and can be synchronized and duplicated into the BrowsingContext tree.

Fission Milestone: --- → M5
Priority: -- → P2
Depends on: 1587434
Whiteboard: [rm-docshell-tree-item:sync-state]
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 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 usage of nsIDocShellTreeItem in Document::StartDocumentLoad → Audit usage of nsIDocShellTreeItem in Document::StartDocumentLoad

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

Fission Milestone: M6 → M6b

CSP has been moved to not use this code anymore, and I no longer can easily find it in tree. Resolving

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