/* coi-serviceworker.js - Cross-Origin Isolation + PWA support */ // Service Worker context self.addEventListener("install", () => self.skipWaiting()); self.addEventListener("activate", (event) => event.waitUntil(self.clients.claim()) ); self.addEventListener("fetch", (event) => { if (event.request.method !== "GET") return; event.respondWith( fetch(event.request).then((response) => { if (response.status === 0 || response.type === "opaque") return response; const headers = new Headers(response.headers); headers.set("Cross-Origin-Embedder-Policy", "require-corp"); headers.set("Cross-Origin-Opener-Policy", "same-origin"); headers.set("Cross-Origin-Resource-Policy", "cross-origin"); return new Response(response.body, { status: response.status, statusText: response.statusText, headers, }); }).catch(() => fetch(event.request)) ); });