forked from Kolyah35/minecraft-pe-0.6.1
57 lines
2.1 KiB
JavaScript
57 lines
2.1 KiB
JavaScript
/* 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");
|
|
}
|
|
})();
|
|
} |