Make GeckoView use the native session store collector
Categories
(GeckoView :: Sandboxing, task, P1)
Tracking
(firefox-esr91 wontfix, firefox99 wontfix, firefox100 wontfix, firefox101 wontfix, firefox102 wontfix, firefox103 wontfix, firefox104 fixed)
People
(Reporter: farre, Assigned: calu)
References
(Blocks 3 open bugs)
Details
(Whiteboard: [fission:android:m3] [geckoview:m102] [geckoview:m103] [geckoview:m104])
Attachments
(1 file, 4 obsolete files)
(deleted),
text/x-phabricator-request
|
Details |
The tricky part of getting GeckoView to use the native collector is how to handle incremental updates of scroll position and formdata coming from any part of the browsing context tree and any content child process.
The best would probably to move the ownership of the objects referenced by TabStateCache._data.get(permanentKey).formdata
and TabStateCache._data.get(permanentKey).scroll
to platform, along with TabStateCache.updatePartialWindowStateChange
. That way, TabStateCache.update
could go back to just receiving an object to store in TabStateCache._data.get(permanentKey).formdata
when formdata gets updated, and correspondingly for scroll
. Since that object should have a reference from within platform, the call to TabStateCache.update
would possibly not be needed, but we might still have to keep it around due to how we restore.
In the case of restore, we would probably see a flow where the object pointed to by TabStateCache._data.get(permanentKey).formdata
begins by not having a reference from platform, but when the restore completes we'd collect the data in platform and then write out the new object.
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Comment 1•3 years ago
|
||
Reporter | ||
Comment 2•3 years ago
|
||
Depends on D131155
Reporter | ||
Comment 3•3 years ago
|
||
Depends on D131156
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Comment 4•3 years ago
|
||
Unassigning farre since this bug requires GeckoView work. The GeckoView team will look this bug in 101.
Comment 5•3 years ago
|
||
Tracking for 102. Blocked waiting for farre to fix bug 1739450 in 101.
Comment 6•3 years ago
|
||
Knowledge dump from Kashav about session restore on desktop:
https://docs.google.com/document/d/13OsWKzLXqGgcYTcsY9qw7fCMeGdyxejtonpRi_l_PyM/edit
Updated•3 years ago
|
Updated•3 years ago
|
Comment 7•3 years ago
|
||
Agi would like to work on this in 102.
Updated•2 years ago
|
Updated•2 years ago
|
Assignee | ||
Comment 8•2 years ago
|
||
When the session storage prefs are enabled, GeckoSession updateSessionState will provide the bundle of information, including zoom, scroll, and form data, to the delegate. Currently works for Fission and on Fenix.
Comment 10•2 years ago
|
||
Backed out changeset 39559c43173a (Bug 1734394) for causing bustages on GeckoBundleUtils.cpp.
Backout link
Push with failures
Failure Log
Also bc4 Failure Log
Comment 11•2 years ago
|
||
Please also check this bc failure
Updated•2 years ago
|
Comment 12•2 years ago
|
||
Comment 13•2 years ago
|
||
Backed out changeset 56a33c1c3210 (Bug 1734394) for causing build bustages in GeckoBundleUtils.cpp CLOSED TREE
Log: https://treeherder.mozilla.org/logviewer?job_id=382463778&repo=autoland&lineNumber=38235
Backout: https://hg.mozilla.org/integration/autoland/rev/7c4f1e3d814342a8f5aa52258a349e4289469183
Assignee | ||
Updated•2 years ago
|
Comment 14•2 years ago
|
||
Moving Android Fission bugs to the new GeckoView::Sandboxing component.
Updated•2 years ago
|
Updated•2 years ago
|
Comment 15•2 years ago
|
||
Comment 16•2 years ago
|
||
Backed out for causing Assertion failures on StaticPrefList_browser.h. CLOSED TREE
Backout link
Push with failures
Link to failure log
Failure line :
Assertion failure: staticPrefValue == preferenceValue (Preference 'browser.sessionstore.platform_collection' got modified since StaticPrefs::browser_sessionstore_platform_collection_AtStartup was initialized. Consider using an always
mirror kind instead), at /builds/worker/workspace/obj-build/dist/include/mozilla/StaticPrefList_browser.h:504
Assignee | ||
Comment 17•2 years ago
|
||
When the session storage prefs are enabled, GeckoSession updateSessionState will provide the bundle of information, including zoom, scroll, and form data, to the delegate. Currently works for Fission and on Fenix.
Updated•2 years ago
|
Comment 18•2 years ago
|
||
Comment 19•2 years ago
|
||
bugherder |
Comment 20•2 years ago
|
||
Since nightly and release are affected, beta will likely be affected too.
For more information, please visit auto_nag documentation.
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Description
•