diff --git a/CMakeLists.txt b/CMakeLists.txt index b25ff7e..7c9d531 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -409,6 +409,9 @@ else() POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/index.html" $ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/coi-serviceworker.js" $ + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/manifest.json" $ + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/icon-192.png" $ + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/icon-512.png" $ ) endif() diff --git a/misc/web/coi-serviceworker.js b/misc/web/coi-serviceworker.js index 8c518e9..fe54c1c 100644 --- a/misc/web/coi-serviceworker.js +++ b/misc/web/coi-serviceworker.js @@ -1,57 +1,26 @@ -/* coi-serviceworker.js */ +/* coi-serviceworker.js - Cross-Origin Isolation + PWA support */ -if (typeof window === "undefined") { - // Código del Worker: Intercepta peticiones - self.addEventListener("install", () => self.skipWaiting()); +// Service Worker context +self.addEventListener("install", () => self.skipWaiting()); - self.addEventListener("activate", (event) => - event.waitUntil(self.clients.claim()) - ); +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"); - } - })(); -} \ No newline at end of file +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)) + ); +}); diff --git a/misc/web/icon-192.png b/misc/web/icon-192.png new file mode 100644 index 0000000..79f3053 Binary files /dev/null and b/misc/web/icon-192.png differ diff --git a/misc/web/icon-512.png b/misc/web/icon-512.png new file mode 100644 index 0000000..895714f Binary files /dev/null and b/misc/web/icon-512.png differ diff --git a/misc/web/index.html b/misc/web/index.html index 1a598e4..3cd04f9 100644 --- a/misc/web/index.html +++ b/misc/web/index.html @@ -2,6 +2,12 @@ + + + + + + MCPE 0.6.1