[fission] Redirect page history and frecency data not passed around when process switching
Categories
(Core :: DOM: Content Processes, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox72 | --- | fixed |
People
(Reporter: jya, Assigned: jya)
References
Details
Attachments
(4 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1599006 - P4. Properly carry history and frecency data when switching process. r=kmag!,mayhemer.
47 bytes,
text/x-phabricator-request
|
Details | Review |
Work to fix this issue started with bug 1596665/
If cross-origin redirects occur, the page history and frecency data will not be passed to the new content process.
This can be verified by tweaking the tests in toolkit/components/places/tests/browser/ so that a cross-origin redirect occurs.
Assignee | ||
Comment 1•5 years ago
|
||
By making the final redirect use a cross-origin destination we can exercise the fission code and expose issues.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D54454
Assignee | ||
Comment 3•5 years ago
|
||
A typo prevented for moves to actually occur. Fix other IPDL entry points while at it that could benefit from move semantics.
Depends on D54907
Assignee | ||
Comment 4•5 years ago
|
||
This allows test toolkit/components/places/tests/browser/browser_multi_redirect_frecency.js and others to pass when fission is enabled.
The content process expects to know the chain of redirects encountered while opening a URI. The DocumentChannelParent gather that information and sends it to the new ContentChild which can then propagate the information to the new nsDocShell.
The data used to only be passed around during same-origin redirects when fission mode was enabled.
In order to allow for move semantics and preventing unnecessary copy of the DocumentChannelRedirect array, we make the nsIChildProcessChannelListener::onChannelReady property C++ only (noscript).
As we have only one concrete nsIChildProcessChannelListener class (ChildProcessListener) and that the unique OnChannelReady implementation is infallible; we really don't need for the method to return nsresult (so we declare it nostdcall). This helps simplify that call.
Depends on D54908
Comment 6•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9b115cb4fce6
https://hg.mozilla.org/mozilla-central/rev/578557e3b952
https://hg.mozilla.org/mozilla-central/rev/7531b31fc05a
https://hg.mozilla.org/mozilla-central/rev/b87b36262b01
Description
•