From d3bd99947dbf77a9270386f4f57cc87fa760dbe6 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Wed, 18 Dec 2024 16:46:30 +0100 Subject: [PATCH] fix(files): Only register preview service worker once when the instance is hosted at the root path Signed-off-by: provokateurin --- apps/files/src/services/ServiceWorker.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/files/src/services/ServiceWorker.js b/apps/files/src/services/ServiceWorker.js index 5f4c446f170..cc13db44009 100644 --- a/apps/files/src/services/ServiceWorker.js +++ b/apps/files/src/services/ServiceWorker.js @@ -11,7 +11,14 @@ export default () => { window.addEventListener('load', async () => { try { const url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true }) - const scope = getRootUrl() + let scope = getRootUrl() + // If the instance is not in a subfolder an empty string will be returned. + // The service worker registration will use the current path if it receives an empty string, + // which will result in a service worker registration for every single path the user visits. + if (scope === '') { + scope = '/' + } + const registration = await navigator.serviceWorker.register(url, { scope }) logger.debug('SW registered: ', { registration }) } catch (error) {