diff --git a/changes/changelog.d/descriptive-service-worker-error.enchancement b/changes/changelog.d/descriptive-service-worker-error.enchancement new file mode 100644 index 000000000..fc3d84224 --- /dev/null +++ b/changes/changelog.d/descriptive-service-worker-error.enchancement @@ -0,0 +1 @@ +Log service worker registration error and add a warning about Firefox SW incompatibility in development mode diff --git a/front/src/init/serviceWorker.ts b/front/src/init/serviceWorker.ts index 264b76e5d..d5f7195ed 100644 --- a/front/src/init/serviceWorker.ts +++ b/front/src/init/serviceWorker.ts @@ -10,8 +10,21 @@ const logger = useLogger() export const install: InitModule = ({ store }) => { const updateSW = registerSW({ - onRegisterError () { - logger.error('SW install error') + onRegisterError (error) { + const importStatementsSupported = navigator.userAgent.includes('Chrome') + || navigator.userAgent.includes('Chromium') + || navigator.userAgent.includes('Opera') + || navigator.userAgent.includes('Brave') + + if (import.meta.env.DEV && !importStatementsSupported) { + logger.warn( + 'Service Worker is not supported in your browser in development mode.\n', + 'For more information, please refer to \'Support for ECMAScript modules\' section at:\n', + 'https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker#browser_compatibility' + ) + } + + logger.error('Service Worker install error:', error) }, onOfflineReady () { logger.info('Funkwhale is being served from cache by a service worker.')