From f833c39f6297df71277d375f6f92c0772a545879 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Mon, 12 Jun 2023 11:55:47 +0200 Subject: [PATCH] [DEBUG] Investigate Service Worker issues (#3274) --- src/serviceWorker.ts | 7 ++++--- src/util/setupServiceWorker.ts | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/serviceWorker.ts b/src/serviceWorker.ts index 136ae3d1a..cc0c2f413 100644 --- a/src/serviceWorker.ts +++ b/src/serviceWorker.ts @@ -1,4 +1,3 @@ -import { DEBUG } from './config'; import { respondForProgressive } from './serviceWorker/progressive'; import { respondForDownload } from './serviceWorker/download'; import { respondWithCache, clearAssetCache, respondWithCacheNetworkFirst } from './serviceWorker/assetCache'; @@ -17,8 +16,10 @@ const RE_NETWORK_FIRST_ASSETS = /\.(wasm|html)$/; const RE_CACHE_FIRST_ASSETS = /[\da-f]{20}.*\.(js|css|woff2?|svg|png|jpg|jpeg|tgs|json|wasm)$/; const ACTIVATE_TIMEOUT = 3000; +const TEMP_DEBUG = true; + self.addEventListener('install', (e) => { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.log('ServiceWorker installed'); } @@ -28,7 +29,7 @@ self.addEventListener('install', (e) => { }); self.addEventListener('activate', (e) => { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.log('ServiceWorker activated'); } diff --git a/src/util/setupServiceWorker.ts b/src/util/setupServiceWorker.ts index c7c790547..038c9fb6f 100644 --- a/src/util/setupServiceWorker.ts +++ b/src/util/setupServiceWorker.ts @@ -1,4 +1,4 @@ -import { DEBUG, DEBUG_MORE, IS_TEST } from '../config'; +import { DEBUG_MORE, IS_TEST } from '../config'; import { getActions } from '../global'; import { formatShareText } from './deeplink'; import { IS_ANDROID, IS_IOS, IS_SERVICE_WORKER_SUPPORTED } from './windowEnvironment'; @@ -12,6 +12,8 @@ type WorkerAction = { const IGNORE_WORKER_PATH = '/k/'; +const TEMP_DEBUG = true; + function handleWorkerMessage(e: MessageEvent) { const action: WorkerAction = e.data; if (DEBUG_MORE) { @@ -52,7 +54,7 @@ if (IS_SERVICE_WORKER_SUPPORTED) { const registrations = await navigator.serviceWorker.getRegistrations(); const ourRegistrations = registrations.filter((r) => !r.scope.includes(IGNORE_WORKER_PATH)); if (ourRegistrations.length) { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.log('[SW] Hard reload detected, re-enabling Service Worker'); } @@ -62,23 +64,30 @@ if (IS_SERVICE_WORKER_SUPPORTED) { await navigator.serviceWorker.register(new URL('../serviceWorker.ts', import.meta.url)); - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.log('[SW] ServiceWorker registered'); } await navigator.serviceWorker.ready; + // eslint-disable-next-line no-console + console.log('Service Worker', navigator.serviceWorker?.controller?.scriptURL); + if (navigator.serviceWorker.controller) { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.log('[SW] ServiceWorker ready'); } subscribeToWorker(); } else { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.error('[SW] ServiceWorker not available'); + // eslint-disable-next-line no-console + console.warn('Assigned registration', await navigator.serviceWorker.getRegistration()); + // eslint-disable-next-line no-console + console.warn('Ready promise', navigator.serviceWorker?.ready); } if (!IS_IOS && !IS_ANDROID && !IS_TEST) { @@ -86,7 +95,7 @@ if (IS_SERVICE_WORKER_SUPPORTED) { } } } catch (err) { - if (DEBUG) { + if (TEMP_DEBUG) { // eslint-disable-next-line no-console console.error('[SW] ServiceWorker registration failed: ', err); }