From 9cc0e0ccd5e1811c7dfa82431fdbd1f5a60fcedd Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 3 Nov 2026 00:41:27 +0100 Subject: [PATCH] =?UTF-8?q?Service=20worker=20enregistr=C3=A9=20une=20fois?= =?UTF-8?q?=20le=20moteur=20charg=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dans Chromium, l'installation du service worker échouait (« Cache.add() encountered a network error » sur wasm/engine.data) quand le Worker du moteur téléchargeait les mêmes 8,7 Mo au même moment : l'application n'était alors pas disponible hors ligne. Repéré par make test-browser, reproduit dans quatre essais sur cinq sans ce changement, jamais avec. Évite aussi de télécharger deux fois ces données à la première visite. Co-Authored-By: Claude Opus 5.5 --- app/src/main.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main.ts b/app/src/main.ts index 4963c2a..d71f8df 100644 --- a/app/src/main.ts +++ b/app/src/main.ts @@ -37,6 +37,12 @@ startApp({ // Hors ligne : le service worker met tout le site en cache. Le navigateur le // refuse hors https (sauf localhost) : l'application marche alors sans. +// Il est enregistré une fois le moteur chargé : si le Worker et le service +// worker téléchargent les données du moteur (8,7 Mo) en même temps, Chromium +// fait échouer l'installation (« Cache.add() encountered a network error »), +// et l'application n'est pas disponible hors ligne. Cela évite aussi de +// télécharger deux fois ces données à la première visite. if ("serviceWorker" in navigator) { - navigator.serviceWorker.register(new URL("../sw.js", import.meta.url)).catch(() => {}); + const sw = new URL("../sw.js", import.meta.url); + worker.ready.then(() => navigator.serviceWorker.register(sw)).catch(() => {}); }