From 55f996cf48a5578337d1fa01fccd5ea724a6769f Mon Sep 17 00:00:00 2001 From: Pavan Kumar Jadda <17564080+pavankjadda@users.noreply.github.com> Date: Tue, 9 May 2023 17:10:09 -0400 Subject: [PATCH] =?UTF-8?q?fix(service-worker):=20fixes=20service=20worker?= =?UTF-8?q?=20issue=20in=20init-service-worke=E2=80=A6=20(#3378)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/viewer/public/init-service-worker.js | 85 ++++++++++--------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/platform/viewer/public/init-service-worker.js b/platform/viewer/public/init-service-worker.js index 22af800b5..0278c5747 100644 --- a/platform/viewer/public/init-service-worker.js +++ b/platform/viewer/public/init-service-worker.js @@ -3,50 +3,57 @@ // modules, so it's perfectly fine to serve this code to any browsers // (older browsers will just ignore it) // -import { Workbox } from 'https://storage.googleapis.com/workbox-cdn/releases/5.0.0-beta.1/workbox-window.prod.mjs'; +//import { Workbox } from './workbox-window.prod.mjs'; +// proper initialization +if( 'function' === typeof importScripts) { + importScripts( + 'https://storage.googleapis.com/workbox-cdn/releases/6.5.4/workbox-window.prod.mjs' + ); -var supportsServiceWorker = 'serviceWorker' in navigator; -var isNotLocalDevelopment = - ['localhost', '127'].indexOf(location.hostname) === -1; + var supportsServiceWorker = 'serviceWorker' in navigator; + var isNotLocalDevelopment = + ['localhost', '127'].indexOf(location.hostname) === -1; -if (supportsServiceWorker && isNotLocalDevelopment) { - const swFileLocation = (window.PUBLIC_URL || '/') + 'sw.js'; - const wb = new Workbox(swFileLocation); + if (supportsServiceWorker && isNotLocalDevelopment) { + const swFileLocation = (window.PUBLIC_URL || '/') + 'sw.js'; + const wb = new Workbox(swFileLocation); - // Add an event listener to detect when the registered - // service worker has installed but is waiting to activate. - wb.addEventListener('waiting', event => { - // customize the UI prompt accordingly. - const isFirstTimeUpdatedServiceWorkerIsWaiting = - event.wasWaitingBeforeRegister === false; - console.log( - 'isFirstTimeUpdatedServiceWorkerIsWaiting', - isFirstTimeUpdatedServiceWorkerIsWaiting - ); + // Add an event listener to detect when the registered + // service worker has installed but is waiting to activate. + wb.addEventListener('waiting', event => { + // customize the UI prompt accordingly. + const isFirstTimeUpdatedServiceWorkerIsWaiting = + event.wasWaitingBeforeRegister === false; + console.log( + 'isFirstTimeUpdatedServiceWorkerIsWaiting', + isFirstTimeUpdatedServiceWorkerIsWaiting + ); - // Assumes your app has some sort of prompt UI element - // that a user can either accept or reject. - // const prompt = createUIPrompt({ - // onAccept: async () => { - // Assuming the user accepted the update, set up a listener - // that will reload the page as soon as the previously waiting - // service worker has taken control. - wb.addEventListener('controlling', event => { - window.location.reload(); + // Assumes your app has some sort of prompt UI element + // that a user can either accept or reject. + // const prompt = createUIPrompt({ + // onAccept: async () => { + // Assuming the user accepted the update, set up a listener + // that will reload the page as soon as the previously waiting + // service worker has taken control. + wb.addEventListener('controlling', event => { + window.location.reload(); + }); + + // Send a message telling the service worker to skip waiting. + // This will trigger the `controlling` event handler above. + // Note: for this to work, you have to add a message + // listener in your service worker. See below. + wb.messageSW({ type: 'SKIP_WAITING' }); + // }, + + // onReject: () => { + // prompt.dismiss(); + // }, + // }); }); - // Send a message telling the service worker to skip waiting. - // This will trigger the `controlling` event handler above. - // Note: for this to work, you have to add a message - // listener in your service worker. See below. - wb.messageSW({ type: 'SKIP_WAITING' }); - // }, + wb.register(); + } - // onReject: () => { - // prompt.dismiss(); - // }, - // }); - }); - - wb.register(); }