refactor(service-worker): remove redundant argument to `versionFailed()` (#31865)

The `latest` argument was only ever set to the value of comparing
`this.latestHash` with the `appVersion` hash, which is already computed
inside `versionFailed()`, so there is no reason to pass it as an
argument as well.

This doesn't have any impact on the current behavior of the SW.

PR Close #31865
This commit is contained in:
George Kalpakas 2019-07-26 18:30:04 +03:00 committed by Miško Hevery
parent a731119f9f
commit 24b8b3427c
1 changed files with 6 additions and 7 deletions

View File

@ -194,7 +194,6 @@ export class Driver implements Debuggable, UpdateSource {
// returning causes the request to fall back on the network. This is preferred over
// `respondWith(fetch(req))` because the latter still shows in DevTools that the
// request was handled by the SW.
// TODO: try to handle DriverReadyState.EXISTING_CLIENTS_ONLY here.
if (this.state === DriverReadyState.SAFE_MODE) {
// Even though the worker is in safe mode, idle tasks still need to happen so
// things like update checks, etc. can take place.
@ -438,7 +437,7 @@ export class Driver implements Debuggable, UpdateSource {
} catch (err) {
if (err.isCritical) {
// Something went wrong with the activation of this version.
await this.versionFailed(appVersion, err, this.latestHash === appVersion.manifestHash);
await this.versionFailed(appVersion, err);
event.waitUntil(this.idle.trigger());
return this.safeFetch(event.request);
@ -575,7 +574,7 @@ export class Driver implements Debuggable, UpdateSource {
// Attempt to schedule or initialize this version. If this operation is
// successful, then initialization either succeeded or was scheduled. If
// it fails, then full initialization was attempted and failed.
await this.scheduleInitialization(this.versions.get(hash) !, this.latestHash === hash);
await this.scheduleInitialization(this.versions.get(hash) !);
} catch (err) {
this.debugger.log(err, `initialize: schedule init of ${hash}`);
return false;
@ -723,13 +722,13 @@ export class Driver implements Debuggable, UpdateSource {
* when the SW is not busy and has connectivity. This returns a Promise which must be
* awaited, as under some conditions the AppVersion might be initialized immediately.
*/
private async scheduleInitialization(appVersion: AppVersion, latest: boolean): Promise<void> {
private async scheduleInitialization(appVersion: AppVersion): Promise<void> {
const initialize = async() => {
try {
await appVersion.initializeFully();
} catch (err) {
this.debugger.log(err, `initializeFully for ${appVersion.manifestHash}`);
await this.versionFailed(appVersion, err, latest);
await this.versionFailed(appVersion, err);
}
};
// TODO: better logic for detecting localhost.
@ -739,7 +738,7 @@ export class Driver implements Debuggable, UpdateSource {
this.idle.schedule(`initialization(${appVersion.manifestHash})`, initialize);
}
private async versionFailed(appVersion: AppVersion, err: Error, latest: boolean): Promise<void> {
private async versionFailed(appVersion: AppVersion, err: Error): Promise<void> {
// This particular AppVersion is broken. First, find the manifest hash.
const broken =
Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion);
@ -753,7 +752,7 @@ export class Driver implements Debuggable, UpdateSource {
// The action taken depends on whether the broken manifest is the active (latest) or not.
// If so, the SW cannot accept new clients, but can continue to service old ones.
if (this.latestHash === brokenHash || latest) {
if (this.latestHash === brokenHash) {
// The latest manifest is broken. This means that new clients are at the mercy of the
// network, but caches continue to be valid for previous versions. This is
// unfortunate but unavoidable.