diff --git a/packages/flutter_tools/lib/src/web/file_generators/js/flutter.js b/packages/flutter_tools/lib/src/web/file_generators/js/flutter.js index d3efa7fd80..c60bf3555e 100644 --- a/packages/flutter_tools/lib/src/web/file_generators/js/flutter.js +++ b/packages/flutter_tools/lib/src/web/file_generators/js/flutter.js @@ -156,53 +156,46 @@ _flutter.loader = null; } /** - * Returns the latest service worker for the given `serviceWorkerRegistrationPromise`. + * Returns the latest service worker for the given `serviceWorkerRegistration`. * * This might return the current service worker, if there's no new service worker * awaiting to be installed/updated. * - * @param {Promise} serviceWorkerRegistrationPromise + * @param {ServiceWorkerRegistration} serviceWorkerRegistration * @returns {Promise} */ - async _getNewServiceWorker(serviceWorkerRegistrationPromise) { - const reg = await serviceWorkerRegistrationPromise; - - if (!reg.active && (reg.installing || reg.waiting)) { + async _getNewServiceWorker(serviceWorkerRegistration) { + if (!serviceWorkerRegistration.active && (serviceWorkerRegistration.installing || serviceWorkerRegistration.waiting)) { // No active web worker and we have installed or are installing // one for the first time. Simply wait for it to activate. console.debug("Installing/Activating first service worker."); - return reg.installing || reg.waiting; - } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) { + return serviceWorkerRegistration.installing || serviceWorkerRegistration.waiting; + } else if (!serviceWorkerRegistration.active.scriptURL.endsWith(serviceWorkerVersion)) { // When the app updates the serviceWorkerVersion changes, so we // need to ask the service worker to update. - return reg.update().then((newReg) => { - console.debug("Updating service worker."); - return newReg.installing || newReg.waiting || newReg.active; - }); + const newRegistration = await serviceWorkerRegistration.update(); + console.debug("Updating service worker."); + return newRegistration.installing || newRegistration.waiting || newRegistration.active; } else { console.debug("Loading from existing service worker."); - return reg.active; + return serviceWorkerRegistration.active; } } /** - * Returns a Promise that resolves when the `latestServiceWorker` changes its + * Returns a Promise that resolves when the `serviceWorker` changes its * state to "activated". * - * @param {Promise} latestServiceWorkerPromise + * @param {ServiceWorker} serviceWorker * @returns {Promise} */ - async _waitForServiceWorkerActivation(latestServiceWorkerPromise) { - const serviceWorker = await latestServiceWorkerPromise; - + async _waitForServiceWorkerActivation(serviceWorker) { if (!serviceWorker || serviceWorker.state == "activated") { if (!serviceWorker) { - return Promise.reject( - new Error("Cannot activate a null service worker!") - ); + throw new Error("Cannot activate a null service worker!"); } else { console.debug("Service worker already active."); - return Promise.resolve(); + return; } } return new Promise((resolve, _) => {