From 7774e5a1ef860847afb52b511d0faf3b2d5cf61a Mon Sep 17 00:00:00 2001 From: Laurent Laubin <20232176+llaubin@users.noreply.github.com> Date: Mon, 21 Apr 2025 14:13:10 +0200 Subject: [PATCH 1/2] Notify the end user if the serviceWorker is unavailable --- webapp/src/dl/index.ts | 6 ++++++ webapp/src/gui/index.ts | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/webapp/src/dl/index.ts b/webapp/src/dl/index.ts index 7582163..8b68834 100644 --- a/webapp/src/dl/index.ts +++ b/webapp/src/dl/index.ts @@ -26,6 +26,12 @@ function cleanupKey(key: string) { async function run() { const loc = window.location; const rootUrl = loc.origin + loc.pathname.replace("/dl","/"); + + if (navigator.serviceWorker == null) { + alert('No serviceWorker available ! Please note the feature may not be available in private mode in Firefox'); + loc.replace(rootUrl); + return; + } try { await navigator.serviceWorker.register('./sw.js', {'scope': '/v1/download/'}); } diff --git a/webapp/src/gui/index.ts b/webapp/src/gui/index.ts index 0ead45d..3367014 100644 --- a/webapp/src/gui/index.ts +++ b/webapp/src/gui/index.ts @@ -33,8 +33,14 @@ app.route('/', uploadView); const mountProm = app.mount('body'); -// Register service worker -navigator.serviceWorker.register('./sw.js', {'scope': '/v1/download/'}); +// Test if serviceWorker is available, the feature may not be available in private mode in FF +// see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/serviceWorker +if (navigator.serviceWorker == null) { + console.log('[**] No serviceWorker available, maybe due to FF in private mode ?'); +} else { + // Register service worker + navigator.serviceWorker.register('./sw.js', {'scope': '/v1/download/'}); +} export default async () => { await mountProm; From cfd6125a40b744d0b18620df819690272ca95c14 Mon Sep 17 00:00:00 2001 From: Laurent Laubin <20232176+llaubin@users.noreply.github.com> Date: Sun, 19 Oct 2025 09:35:55 +0200 Subject: [PATCH 2/2] Fix indentation... --- webapp/src/gui/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webapp/src/gui/index.ts b/webapp/src/gui/index.ts index 3367014..e0f170a 100644 --- a/webapp/src/gui/index.ts +++ b/webapp/src/gui/index.ts @@ -38,8 +38,8 @@ const mountProm = app.mount('body'); if (navigator.serviceWorker == null) { console.log('[**] No serviceWorker available, maybe due to FF in private mode ?'); } else { - // Register service worker - navigator.serviceWorker.register('./sw.js', {'scope': '/v1/download/'}); + // Register service worker + navigator.serviceWorker.register('./sw.js', {'scope': '/v1/download/'}); } export default async () => {