Closed Bug 1734394 Opened 3 years ago Closed 2 years ago

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)

RESOLVED FIXED
104 Branch
Tracking Status
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)

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.

Assignee: nobody → afarre
Status: NEW → ASSIGNED
Depends on: 1739450

Depends on D131155

Attached file WIP: Bug 1734394 - Part 2: WIP (obsolete) (deleted) —

Depends on D131156

Attachment #9250764 - Attachment description: WIP: Bug 1734394 - Part 2: Turn SessionStoreUtils::NATIVE_LISTENER into a pref. r=peterv! → WIP: Bug 1734394 - Part 1: Turn SessionStoreUtils::NATIVE_LISTENER into a pref. r=peterv!
Attachment #9250765 - Attachment description: WIP: Bug 1734394 - Part 3: WIP → WIP: Bug 1734394 - Part 2: WIP
Attachment #9250763 - Attachment is obsolete: true

Unassigning farre since this bug requires GeckoView work. The GeckoView team will look this bug in 101.

Assignee: afarre → nobody
Severity: -- → N/A
Status: ASSIGNED → NEW
Priority: -- → P2
Whiteboard: [fission:android:m3] [geckoview:m101?]

Tracking for 102. Blocked waiting for farre to fix bug 1739450 in 101.

Whiteboard: [fission:android:m3] [geckoview:m101?] → [fission:android:m3] [geckoview:m102?]
Assignee: nobody → jonalmeida942
Assignee: jonalmeida942 → nobody

Agi would like to work on this in 102.

Assignee: nobody → agi
Component: Session Restore → General
Product: Firefox → GeckoView
Whiteboard: [fission:android:m3] [geckoview:m102?] → [fission:android:m3] [geckoview:m102]
Assignee: agi → nobody
Assignee: nobody → calu
Priority: P2 → P1
Whiteboard: [fission:android:m3] [geckoview:m102] → [fission:android:m3] [geckoview:m102] [geckoview:m103]

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.

Pushed by calu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/39559c43173a Make Geckoview use the session store collector r=geckoview-reviewers,agi,farre

Backed out changeset 39559c43173a (Bug 1734394) for causing bustages on GeckoBundleUtils.cpp.
Backout link
Push with failures
Failure Log
Also bc4 Failure Log

Flags: needinfo?(calu)

Please also check this bc failure

Whiteboard: [fission:android:m3] [geckoview:m102] [geckoview:m103] → [fission:android:m3] [geckoview:m102] [geckoview:m103] [geckoview:m104]
Pushed by calu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/56a33c1c3210 Make Geckoview use the session store collector r=geckoview-reviewers,agi,farre
Flags: needinfo?(calu)

Moving Android Fission bugs to the new GeckoView::Sandboxing component.

Component: General → Sandboxing
Attachment #9250765 - Attachment is obsolete: true
Attachment #9250764 - Attachment is obsolete: true
Pushed by calu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/67fae8447273 Make Geckoview use the session store collector r=geckoview-reviewers,agi,farre,peterv

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

Flags: needinfo?(calu)

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.

Attachment #9285562 - Attachment is obsolete: true
Pushed by calu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/519c8a9a5f8c Make Geckoview use the session store collector r=geckoview-reviewers,agi,farre,peterv
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 104 Branch

Since nightly and release are affected, beta will likely be affected too.
For more information, please visit auto_nag documentation.

Regressions: 1779915
Flags: needinfo?(calu)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: