/* coi-serviceworker.js */ if (typeof window === "undefined") { // Código del Worker: Intercepta peticiones 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) return response; const newHeaders = new Headers(response.headers); newHeaders.set("Cross-Origin-Embedder-Policy", "require-corp"); newHeaders.set("Cross-Origin-Opener-Policy", "same-origin"); newHeaders.set("Cross-Origin-Resource-Policy", "cross-origin"); return new Response(response.body, { status: response.status, statusText: response.statusText, headers: newHeaders, }); }) .catch(() => fetch(event.request)) ); }); } else { // Código de la Ventana: Registra el worker y recarga (function () { if ("serviceWorker" in navigator) { navigator.serviceWorker .register(window.document.currentScript.src) .then((registration) => { registration.addEventListener("updatefound", () => { // Si hay una actualización, recargamos location.reload(); }); if (registration.active && !navigator.serviceWorker.controller) { // Si el worker está activo pero no controla la página aún, recargamos location.reload(); } }); } // Si ya estamos aislados, perfecto if (window.crossOriginIsolated) { console.log("Aislamiento de origen ACTIVADO"); } })(); }