fix: reload benchmark after isolation service worker

This commit is contained in:
Mihaela Mihaljevic 2026-06-07 00:40:54 +02:00
parent 7f31f19584
commit c8f732a655

View File

@ -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);
});