Open Bug 1594278 Opened 5 years ago Updated 2 years ago

Audit nsIDocShellTreeItem usage in nsCoreUtils::GetScreenCoordsForWindow

Categories

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

task

Tracking

()

Fission Milestone Future

People

(Reporter: djvj, Unassigned)

References

(Blocks 1 open bug)

Details

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

https://searchfox.org/mozilla-central/rev/8b7aa8af652f87d39349067a5bc9c0256bf6dedc/accessible/base/nsCoreUtils.cpp#319

Uses the DocShell to obtain the tree-owner, and retrieves the window from that to obtain the screen coordinates.

This should be changed to use BrowsingContext and BrowsingContextGroup and WindowContext - if in process. Window coordinates are likely too sensitive to be replicated across processes (and potentially updated too frequently), so for cases where the window is out of process, this implies some sort of IPC.

However, the IPC should only end up happening in rare cases - situations where the screen coordinates are obtained from documents which are from a different origin from the tab root document.

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

Please 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 nsCoreUtils::GetScreenCoordForWindow → Audit nsIDocShellTreeItem usage in nsCoreUtils::GetScreenCoordForWindow

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

Fission Milestone: M6 → M6b
Summary: Audit nsIDocShellTreeItem usage in nsCoreUtils::GetScreenCoordForWindow → Audit nsIDocShellTreeItem usage in nsCoreUtils::GetScreenCoordsForWindow

Nika said getting tree owner isn't necessarily broken.

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