demo · v135

srcdoc iframes become SW clients

Chrome 135 makes <iframe srcdoc> documents real service worker clients that inherit the parent's controller. The demo registers an SW, mounts a srcdoc frame, and probes whether it sees the same controller.

Service Worker: ? parent controller: ? srcdoc client: ?

srcdoc iframe

event log

the code

// parent
await navigator.serviceWorker.register("./sw.js");
const frame = document.createElement("iframe");
frame.srcdoc = "<script>parent.postMessage(!!navigator.serviceWorker.controller,'*')</script>";
document.body.appendChild(frame);

// before chrome 135:  message === false   (srcdoc bypassed the SW)
// chrome 135+:        message === true    (srcdoc inherits parent controller)

see also