[meta] Control Document loads entirely from the parent process
Categories
(Core :: DOM: Navigation, task, P3)
Tracking
()
Fission Milestone | Future |
People
(Reporter: mattwoodrow, Unassigned)
References
(Depends on 3 open bugs, Blocks 1 open bug)
Details
(Keywords: meta)
The current state is that document load requests from firefox get sent down to the current content process (regardless of URI), which creates DocumentChannel and handles switching the load to the desired process.
We also speculatively create a DocumentLoadListener in the parent process in parallel (bug 1602318) to get the network load started earlier (and to prove that we have all the information needed in the parent process).
The goal is to move to only starting the DocumentLoadListener in the parent, and not notifying the previous content process at all (until and if we decide to load the response as a Document in that process).
The biggest blocker for this is that the docshell records session history for the active load, and so we need session history in the parent process.
Reporter | ||
Comment 1•5 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #0)
The biggest blocker for this is that the docshell records session history for the active load, and so we need session history in the parent process.
Just to expand on this a bit, there are GeckoView unit tests that start a load, and then immediately try to reload it.
If the load is handled in the parent process, but the reload is sent down to the content process docshell, it then fails since there's no Document and no active load there. I think we need all types of navigation to be handled in the same place to keep ordering guarantees.
This is probably pretty impossible to trigger via user interaction in desktop Firefox (since it has a combined stop/reload button), but we have code in docshell specifically to try get this case right. I'm not sure about what happens if you try go back/forward while an existing load is in progress, but that might have the same problem.
If we have session-history in the parent, then we can start history navigations in the parent too (reload, but also forward/back etc) and this should fix our ordering issues.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 3•4 years ago
|
||
Moving from Fission MVP to Future because this is a big project and all the dependencies are already in Fission Future.
Updated•3 years ago
|
Description
•