From 1c1c273bca325be127ddd42849b05c42132fd16e Mon Sep 17 00:00:00 2001 From: Pavel Mazhnik Date: Fri, 14 Jul 2023 22:10:55 +0300 Subject: [PATCH] [web] remove unnecessary awaits from flutter.js (#130204) Fixed types for `_getNewServiceWorker` and `_waitForServiceWorkerActivation` functions. These functions currently expect a Promise as an argument, but we're actually passing in an already resolved value: ```js .then(this._getNewServiceWorker) .then(this._waitForServiceWorkerActivation); ``` --- .../lib/src/web/file_generators/js/flutter.js | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) 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, _) => {