Browser support, size, versioning
Evergreen Chromium, Firefox and Safari 16+. The suite runs in Playwright's
Chromium, Firefox and WebKit. A browser missing a primitive (sandboxed
frames, MessageChannel, blob: workers, worker CSP inheritance) surfaces
as SandboxUnavailable; there is no degraded mode.
Sizes, min+gz, checked in CI against budgets: core 8.5 KB (budget 10), worker runtime 2.4 KB (budget 4), frame relay 0.5 KB (budget 2).
The frame document carries a protocol version; the page checks it in the
handshake and refuses a mismatch. The worker runtime is sent by the page
in the spawn message, so the frame document rarely changes and a stale
cached copy keeps working across library versions until the protocol
itself changes. frameVersion() is a short hash to use as a cache key.
Timings on a laptop (local server): boot 2–7 ms, first run 3–5 ms, bridge
overhead per call ≤ 0.1 ms, a 1 MB string in and out 3–8 ms, a 5 MB File
in 3–5 ms.