Cross-origin isolation
self.crossOriginIsolated === true means the page can only talk to
other documents that opted in to the same COOP and COEP values. That cuts off the
side-channel a Spectre-style attack would otherwise be able to read.
SharedArrayBuffer
Browsers disabled SharedArrayBuffer in 2018 after Spectre and
re-enabled it in 2020, but only for cross-origin-isolated pages. The same gate
unlocks high-precision performance.now() values (rounded to 5µs
instead of 1ms) and performance.measureUserAgentSpecificMemory().
Spectre in plain terms
Spectre lets a script read memory it should not have access to by exploiting
timing differences in the CPU cache. COOP and COEP shrink the shared address
space to a single origin, removing the side-channel.
COEP credentialless
A newer alternative to require-corp. The browser sends
cross-origin subresource requests without cookies or client certificates, so
Access-Control-Allow-Origin: * responses are accepted. Useful when
you cannot get every third-party host to ship CORP.
COOP same-origin-allow-popups
Lets you keep a reference to a popup you opened, without giving up the isolation
benefit. The opener and the popup share an agent cluster as long as the popup was
opened by user gesture, and you can still postMessage between them.
CORP cross-origin
Send this on third-party assets so they can be embedded by a
require-corp page. same-site is a tighter alternative
when the asset should only load on the same registrable domain.