Open Bug 1597482 Opened 2 months ago Updated 2 months ago

Fix uses of GetProfileTimelineSubDocShells in layout/base/nsRefreshDriver.cpp


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




Fission Milestone M6


(Reporter: djvj, Unassigned)


(Blocks 1 open bug)


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

In file layout/base/nsRefreshDriver.cpp

Uses DocShellEnumerator

Called only by RefreshDriver::Tick - performance sensitive

  • No IPC!

Related to profiling code - returns all descendant docshells that are visible and recording profile markers.

Calls “AddMarkerForDocShell” on all enumerated docshells, adding “Paint” marker.

Possible fix:

  • Change to use BrowsingContext tree
  • For in-process nodes, call “AddMarkerForDocShell” as now.
  • For out-of-process child nodes, accumulate them in a vector.
  • Issue single IPC call to chrome to dispatch marker additions to children.
  • This is a complicated fix that GFX and Devtools team will have to figure out.

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

Fission Milestone: --- → M6
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.