Intent to Prototype: Re-Enable SharedArrayBuffer (SAB) on Android gated behind COOP/COEP

Skip to first unread message

Lutz Vahl

Aug 6, 2020, 7:48:05 AM8/6/20

Contact emails,, 


SABs are currently disabled in Chrome on Android. As COOP/COEP have been released we can use ‘self.crossOriginIsolated’ to re-enable SABs on Android in case the site is isolated. This I2P is only targeting Android; other platforms are not affected by the change. The broader plan is outlined in:

If a document is cross-origin isolated:

* globalThis.crossOriginIsolated will return true.

* globalThis.SharedArrayBuffer will no longer return undefined.

* postMessage() can be used to message SharedArrayBuffer objects:,

* Agent clusters within a cross-origin isolated browsing context group are keyed on origin rather than site: this means that 

 1) shared memory is bound to a single origin (postMessage()’ing elsewhere results in a message error) 

 2) document.domain is ineffective


As part of our response to side-channel attacks like Spectre, Chromium disabled SharedArrayBuffer globally, and then re-enabled it on platforms where we could comfortably deploy Site Isolation. Since then, we've been working through new isolation primitives in collaboration with other browser vendors that we believe will enable us to safely re-enable SharedArrayBuffers on all platforms. COOP and COEP have been shipped along with M83, and together allow developers to opt-into a "cross-origin isolated" state which substantially mitigates the risk that cross-origin data can accidentally flow into a process an attacker can poke at. Our plan is to enable SharedArrayBuffer on all platforms, only for pages that opt-into such protections.


Interoperability and Compatibility

For this intent no compatibility or interoperability risks as SABs are currently not available on Android at all.

Edge: No public signals

Firefox: Re-enable SABs on all platforms gated behind COOP/COEP in 79. 

Safari: No public signals

Web / Framework developers: No public signals


Feature detection for SABs will work and is handling the ‘self.crossOriginIsolated’ state correctly. 

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

No, the I2P is targeting Android only. SABs are already available on platforms where we could comfortably deploy Site Isolation. The plan is to migrate the usage of SABs on these platforms as well to make the feature accessible across all platforms (see:

Is this feature fully tested by web-platform-tests?

Tests are in place, e.g









Link to entry on the feature dashboard - SABs in generall - Re-Enable SABs on Android

Requesting approval to ship?


Lutz Vahl

Technical Program Manager

Google Germany GmbH

Erika-Mann-Strasse 36

80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

Registergericht und -nummer: Hamburg, HRB 86891

Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich. Falls Sie diese fälschlicherweise erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, dass die E-Mail an die falsche Person gesendet wurde. 


This e-mail is confidential. If you received this communication by mistake, please don't forward it to anyone else, please erase all copies and attachments, and please let me know that it has gone to the wrong person.

Daniel Bratell

Aug 6, 2020, 2:18:05 PM8/6/20
to Lutz Vahl,
The "broader plan" document doesn't seem to be publicly available.

I am sure there will be much rejoicing when SAB is back everywhere so I wanted to see the plan.


You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

Lutz Vahl

Aug 10, 2020, 4:24:35 AM8/10/20
to Daniel Bratell,
Thanks for the feedback, Daniel.
The broader plan is another blink-dev@ thread: Try this link: or search for 'Planning isolation requirements (COOP/COEP) for SharedArrayBuffer' within all threads.

Please let me know if you have any questions!


Reply all
Reply to author
0 new messages