Closed Bug 1771965 Opened 2 years ago Closed 2 months ago

Add GeckoRuntimeSetting API to enable SHIP

Categories

(GeckoView :: General, enhancement, P1)

Unspecified
Android
enhancement

Tracking

(firefox132 fixed)

RESOLVED FIXED
132 Branch
Tracking Status
firefox132 --- fixed

People

(Reporter: agi, Assigned: olivia)

References

Details

(Whiteboard: [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint][fxdroid])

Attachments

(1 file, 1 obsolete file)

We will need this to run experiments to gather data on Fission performance on Android.

Fenix will need to call this new API, but I'll wait to file the Fenix issue until this API has landed in GV.

Severity: -- → N/A
OS: All → Android
Priority: -- → P2
Whiteboard: [fission:android:m2] [geckoview:m104?]

We don't need to implement this Fission API in 104. Fixing Fission session restore and tests is a higher priority.

Summary: Add GeckoRuntimeSetting API to enable fission → Add GeckoRuntimeSetting API to enable Fission
Whiteboard: [fission:android:m2] [geckoview:m104?] → [fission:android:m2] [geckoview:2022q3]

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

Component: General → Sandboxing
Component: Sandboxing → General

Olivia, I think this bug relates to your work to support Fenix enabling SHIP (Session History In Parent, which implies Fission disabled) or Fission (which implies SHIP enabled) experiments.

What other Fenix, GV, or Gecko work is needed to listen for enrollment in those (yet to be named) experiments and then enable SHIP or Fission?

Assignee: nobody → ohall
Flags: needinfo?(ohall)
Blocks: 1913733
No longer blocks: gv-fission
Summary: Add GeckoRuntimeSetting API to enable Fission → Add GeckoRuntimeSetting API to enable Fission or SHIP

What other Fenix, GV, or Gecko work is needed to listen for enrollment in those (yet to be named) experiments and then enable SHIP or Fission?

AC/Fenix:
AC side is pretty simple, should just be defining the experiment in geckoview.fml.yaml. (At worst, the Nimbus experiment delegate might need expanded, but I havn't seen something to suggest that yet.) Work planned in bug 1913733.

GeckoView:
Glad you shared this specific bug! Yes, this should be one of the steps and this bug should be the main part of the GeckoView work. I was wondering if I could just add to the GeckoRuntimeSetting because of this comment. That combined with this bug Agi filed, seems to suggest that a little stronger. (Right now, I'm not totally sure they are added before initialization. I'll try to narrow that down shortly.)

Otherwise, it will be setting up something around adding an extra somewhere for GeckoThread.java. Work would happen in this bug 1771965.

We also need to add a place to connect this new API to listen and change based on the experiment. Work planned in bug 1913733, if it is bigger than expected, then it might get a new bug.

Gecko:
Hopefully, we can just reusing existing code, but I wouldn't be surprised if there are a few small changes we need to make. These are the enviromental vars that seem relevant for fission specifically. I'd file a new bug if something had to happen here.

Flags: needinfo?(ohall)
Priority: P2 → P1
Whiteboard: [fission:android:m2] [geckoview:2022q3] → [fission:android:m2] [geckoview:2022q3] [banana sprint]
Whiteboard: [fission:android:m2] [geckoview:2022q3] [banana sprint] → [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint]

I did some testing and this does occur early enough during initialization for the default value the Pref is assigned. However, if the value is set after this default initialization, the pref doesn't take (as expected). Currently focusing on a WIP on how to connect Nimbus to set this very early default.

Whiteboard: [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint] → [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint][geckoview:2024H2?]
Whiteboard: [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint][geckoview:2024H2?] → [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint]
Blocks: 1914655

Moved bug to enable Fission to bug 1914655 because it looks like it will use an enviromental variable instead of a pref, so likely a little neater if it is a new bug.

No longer blocks: 1914655
See Also: → 1914655
Summary: Add GeckoRuntimeSetting API to enable Fission or SHIP → Add GeckoRuntimeSetting API to enable SHIP

This patch adds a new default pref for fission.disableSessionHistoryInParent
on GeckoRuntimeSettings and a getter.

Additionally, a testing API is added to verify SHIP was fully enabled
and not just the preference changed.

Attachment #9420635 - Attachment description: Bug 1771965 - Add GeckoRuntimeSetting API to Enable SHIP → WIP: Bug 1771965 - Add GeckoRuntimeSetting API to Enable SHIP
Attachment #9420635 - Attachment is obsolete: true

This patch adds:

  • getDisableShip to GeckoRuntimeSettings to get value of SHIP.
  • disableShip to GeckoRuntimeSettings builder to set SHIP status before initialization.
  • Test option of isSessionHistoryInParentRunning to verify SHIP is fully enabled/disabled
Whiteboard: [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint] → [fission:android:m2] [geckoview:2022q3] [kitkat banana sprint][fxdroid]
Pushed by ohall@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d084b1ed1b0e Add GeckoRuntimeSetting API to enable SHIP r=geckoview-reviewers,owlish,kaya
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 132 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: