From c8f732a6556bce6b1e665afc4823be942d034622 Mon Sep 17 00:00:00 2001 From: Mihaela Mihaljevic Date: Sun, 7 Jun 2026 00:40:54 +0200 Subject: [PATCH] fix: reload benchmark after isolation service worker --- WasmSite/coi-serviceworker.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/WasmSite/coi-serviceworker.js b/WasmSite/coi-serviceworker.js index 576fa68..32719c5 100644 --- a/WasmSite/coi-serviceworker.js +++ b/WasmSite/coi-serviceworker.js @@ -1,18 +1,26 @@ (() => { const coop = "same-origin"; const coep = "credentialless"; + const reloadKey = "pureyamlStreamingCOIReloadedV2"; if (typeof Window !== "undefined" && self instanceof Window) { if (window.crossOriginIsolated || !("serviceWorker" in navigator) || !window.isSecureContext) { return; } - navigator.serviceWorker.register("./coi-serviceworker.js").then(async () => { - await navigator.serviceWorker.ready; - if (!navigator.serviceWorker.controller && sessionStorage.getItem("coiReloaded") !== "1") { - sessionStorage.setItem("coiReloaded", "1"); + const reloadForIsolation = () => { + if (!window.crossOriginIsolated && sessionStorage.getItem(reloadKey) !== "1") { + sessionStorage.setItem(reloadKey, "1"); window.location.reload(); } + }; + + navigator.serviceWorker.addEventListener("controllerchange", reloadForIsolation); + + navigator.serviceWorker.register("./coi-serviceworker.js").then(async (registration) => { + await registration.update(); + await navigator.serviceWorker.ready; + reloadForIsolation(); }).catch((error) => { console.warn("Unable to register cross-origin isolation service worker", error); });