Closed Bug 1640019 Opened 8 months ago Closed 8 months ago

Support DocumentLoadListener-triggered toplevel process switches outside of tabbrowser

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla79
Fission Milestone M6a
Tracking Status
firefox79 --- fixed

People

(Reporter: nika, Assigned: nika)

References

(Blocks 1 open bug)

Details

(Keywords: perf-alert)

Attachments

(8 files)

No description provided.

This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a remote attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Add a series of extra hooks and methods to allow tabbrowser to use the new
process switching codepath. This duplicates some of the logic from
updateBrowserRemoteness into event handlers.

Due to the PPDC process switching changes, we also handle switching between
remote and non-remote browsers with DocumentLoadListener. Adds support to
CanonicalBrowsingContext::ChangeFrameRemoteness to allow it to handle non-remote
browsers as well.

As tabbrowser now uses PROCESS_BEHAVIOR_STANDARD, PROCESS_BEHAVIOR_CUSTOM is
now unused. This patch removes that now-unused code.

These were only used by process switches triggered via DocumentChannel, which
now take the PROCESS_BEHAVIOR_STANDARD codepath.

This pref was enabled on all platforms, and the codepath which has it disabled
has been untested for some time. Remove the pref to simplify the code handling
the old case.

This method was used by GroupedSHistory for prerendering, and was missed when we
ripped out the incomplete code.

This assertion would spuriously fire if a content process died after its id was
taken.

Pushed by nlayzell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/30d2bf04719b
Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/4f6a03152526
Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
https://hg.mozilla.org/integration/autoland/rev/8542edc564bc
Part 3: Also allow switching between remote and non-remote, r=mattwoodrow,necko-reviewers,valentin
https://hg.mozilla.org/integration/autoland/rev/521b4d5a9a89
Part 4: Get rid of PROCESS_BEHAVIOR_CUSTOM, r=mattwoodrow,Gijs,necko-reviewers,valentin
https://hg.mozilla.org/integration/autoland/rev/f7d0605295f7
Part 5: Remove a number of now-unused 'updateBrowserRemoteness' parameters, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/7bf86513348e
Part 6: Get rid of the rebuild_frameloaders pref, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/5905995e4815
Part 7: Remove the unused 'navigateAndRestoreByIndex' method, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/c7170e76e676
Part 8: Remove unnecessary ASSERT_UNLESS_FUZZING when looking up CP, r=mattwoodrow
Pushed by nlayzell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d027f301f08c
Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/09337b5ac5cc
Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
https://hg.mozilla.org/integration/autoland/rev/8421adf26e66
Part 3: Also allow switching between remote and non-remote, r=mattwoodrow,necko-reviewers,valentin
https://hg.mozilla.org/integration/autoland/rev/aee7b778f2fd
Part 4: Get rid of PROCESS_BEHAVIOR_CUSTOM, r=mattwoodrow,Gijs,necko-reviewers,valentin
https://hg.mozilla.org/integration/autoland/rev/5f597199f5b1
Part 5: Remove a number of now-unused 'updateBrowserRemoteness' parameters, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/756d28d0d393
Part 6: Get rid of the rebuild_frameloaders pref, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/0fcce0287c02
Part 7: Remove the unused 'navigateAndRestoreByIndex' method, r=Gijs
https://hg.mozilla.org/integration/autoland/rev/879feb334274
Part 8: Remove unnecessary ASSERT_UNLESS_FUZZING when looking up CP, r=mattwoodrow
Flags: needinfo?(nika)
Regressions: 1646328
Blocks: 1580811

== Change summary for alert #26254 (as of Wed, 17 Jun 2020 13:17:47 GMT) ==

Improvements:

1% Base Content JS windows7-32-shippable opt 2,907,873.83 -> 2,875,532.67

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26254

Keywords: perf-alert
Blocks: 1646817
Duplicate of this bug: 1636169
Duplicate of this bug: 1601503
See Also: → 1646810
You need to log in before you can comment on or make changes to this bug.