Closed Bug 1619655 Opened 4 years ago Closed 2 years ago

Enable COOP+COEP (aka "resab") on Android

Categories

(GeckoView :: Sandboxing, enhancement, P1)

Unspecified
Android
enhancement

Tracking

(Fission Milestone:Future, firefox-esr91 wontfix, firefox95 wontfix, firefox96 wontfix, firefox97 fixed)

RESOLVED FIXED
97 Branch
Fission Milestone Future
Tracking Status
firefox-esr91 --- wontfix
firefox95 --- wontfix
firefox96 --- wontfix
firefox97 --- fixed

People

(Reporter: annevk, Assigned: owlish)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m96])

Attachments

(4 files)

I file this mainly so we do not lose track of it. It's not part of shipping COOP+COEP initially. Dependencies will need to be fixed and then we can fiddle with these preferences and see what breaks and how many new intermittents we get:

browser.tabs.remote.useCORP
browser.tabs.remote.useCrossOriginOpenerPolicy
browser.tabs.remote.useCrossOriginEmbedderPolicy
dom.postMessage.sharedArrayBuffer.withCOOP_COEP

Note that javascript.options.shared_memory is enabled on Android already and will eventually ship there following bug 1606624. (Ironically it won't give you access to shared memory however, as postMessage() will throw until this is fixed.)

Rank: 15
Depends on: 1605382

COOP and COEP are a prerequisite for Fission on Android.

Fission Milestone: --- → Future
Blocks: 1662401

Nominating for 85 sprint for the purposes of ascertaining what (if anything) needs work here.

Whiteboard: [geckoview:m85]

Tracking this bug for Android Fission milestone M2 (pass tests with Fission enabled).

Whiteboard: [geckoview:m85] → [geckoview:m85] [fission:android:m2]

Some COOP/COEP tests are skipped or force-passed on Android:

https://searchfox.org/mozilla-central/source/testing/web-platform/meta/html/cross-origin-opener-policy
https://searchfox.org/mozilla-central/source/testing/web-platform/meta/html/cross-origin-embedder-policy

needinfo'ing Neha because she is investigating why these COOP/COEP tests were skipped/force-passed on Android.

Flags: needinfo?(nkochar)

Tom, you might know why some COOP/COEP tests were either disabled for Android or marked passing only-for-Android.

Flags: needinfo?(nkochar) → needinfo?(ttung)

That's because Android was out of scope of the resab project, no? And until bug 1530770 is fixed I don't think we're able to do much, unless something else has changed?

Flags: needinfo?(ttung)

Thanks Anne. Yes, Android was out of scope at the time of shipping resab. But seeing some of the tests only enabled for Android made me very curious...

aklotz and agi, after bug 1530770 is fixed, the Android team will have to try to enable the COOP and COEP WPTs for Android and fix any failures seen.

Flags: needinfo?(aklotz)
Flags: needinfo?(agi)

Bug 1530770 is fixed (it's just not riding the trains yet) so I guess we could try to do this in Nightly now.

Flags: needinfo?(aklotz)
Flags: needinfo?(agi)
Depends on: 1654817
No longer depends on: android-e10s-multi
Whiteboard: [geckoview:m85] [fission:android:m2] → [geckoview:m85] [fission:android:m2][geckoview:m87]
Priority: P2 → P1
Assignee: nobody → aklotz
Status: NEW → ASSIGNED

Note to self that browser.tabs.remote.useCORP is gone as of bug 1609078.

No longer depends on: 1666335

We're ready to enable this, pending the enabling of more e10s processes.

Priority: P1 → P2
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m87] → [geckoview:m85] [fission:android:m2][geckoview:m88]
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m88] → [geckoview:m85] [fission:android:m2][geckoview:m89]
Priority: P2 → P1
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m89] → [geckoview:m85] [fission:android:m2][geckoview:m90]

Bumping this to 90 in favour of landing the Nightly-only variant in bug 1703968.

Priority: P1 → P2
Depends on: 1704194
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m90] → [geckoview:m85] [fission:android:m2][geckoview:m90?]
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m90?] → [geckoview:m85] [fission:android:m2][geckoview:m91?]
Blocks: 1626250
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m91?] → [geckoview:m85] [fission:android:m2][geckoview:m92?]
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m92?] → [geckoview:m85] [fission:android:m2][geckoview:m93?]
Assignee: bugzilla → nobody
Status: ASSIGNED → NEW

What news here? This is an unfortunate bit of feature non-parity, and the Bergamot (in-browser translation) team ran into this issue during some testing yesterday, because they are using wasm with shared memory. This is a P2 bug but the only blocking (DOM) bug is unprioritized.

Adding on top of what Lars wrote, I faced this issue on Firefox for Android 91.1.0 for Bergamot project but not on Firefox for Android (Nightly) 93.0a1

Agi, Nika says she doesn't know of issues that should block the GV team from enabling COOP+COEP on Android to match desktop. It can be enabled on Android before Fission.

Flags: needinfo?(agi)
OS: All → Android

I need to dig through the backout logs/emails, from what I'm told there's something only enabled in late beta that breaks on android with COOP+COEP (keeping the NI so I remember to look into that)

Priority: P2 → P1
Whiteboard: [geckoview:m85] [fission:android:m2][geckoview:m93?] → [geckoview:m85] [fission:android:m2][geckoview:m96]
Rank: 15 → 1
Assignee: nobody → bugzeeeeee

So as far as I can tell, we have enabled COOP+COEP in Nightly builds (since v89), and it has been doing well. It looks like at this stage we can proceed to enabling this in Beta and Release builds.

I'll start with some try pushes, and if the tests are doing well there, will make a patch.

Note to myself: found in Fission meeting notes mention of some disabled wpt COOP/COEP tests. Check to see if they are still disabled

Pushed by istorozhko@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c3111723c611
Part 1. Enable COOP+COEP prefs on GeckoView Beta and Release r=calu
Pushed by istorozhko@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/90e053a1953b
Part 2. Fix COOP and COEP wpt test expectations for Android Beta and Release r=calu
https://hg.mozilla.org/integration/autoland/rev/32bc709ae6d7
Part 3. Fix worker and hr-time wpt test expectations for Android Beta and Release r=calu
https://hg.mozilla.org/integration/autoland/rev/35533e37472a
Part 4. Set GV's COOP+COEP processCount for Release and Beta r=geckoview-reviewers,calu

owlish, do we want to uplift these COOP+COEP patches to Beta 96 or ride the trains with 97?

COOP+COEP is already enabled #ifdef NIGHTLY_BUILD, so IIUC these patches have no effect in Nightly. OTOH, I see we have at least one regression (bug 1744775) that needs to be resolved first before enabling COOP+COEP in Beta.

Flags: needinfo?(bugzeeeeee)

The feature has been in Nightly for a while, but I would still let it ride the trains to give us more opportunity to fix any possible intermittents rising from removing the #ifdef NIGHTLY_BUILD (including the one you mentioned).

Flags: needinfo?(bugzeeeeee)

SGTM. Setting status-firefox96=wontfix flag because we don't need to uplift to Beta 96.

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

Component: General → Sandboxing
Flags: needinfo?(agi)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: