Fix 'install now' click after download

This commit is contained in:
Josh Perez 2021-08-23 18:45:11 -04:00 committed by GitHub
parent 81c57107ce
commit d80e738fb1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 82 additions and 83 deletions

View file

@ -1,9 +1,12 @@
// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const env = window.getEnvironment();
import { Environment, getEnvironment } from '../environment';
import { isInPast } from './timestamp';
const NINETY_ONE_DAYS = 86400 * 91 * 1000;
const ONE_DAY_MS = 86400 * 1000;
const NINETY_ONE_DAYS = 91 * ONE_DAY_MS;
const THIRTY_ONE_DAYS = 31 * ONE_DAY_MS;
export function hasExpired(): boolean {
const { getExpiration, log } = window;
@ -21,18 +24,23 @@ export function hasExpired(): boolean {
return true;
}
const tooFarIntoFuture = Date.now() + NINETY_ONE_DAYS < buildExpiration;
if (getEnvironment() === Environment.Production) {
const safeExpirationMs = window.Events.getAutoDownloadUpdate()
? NINETY_ONE_DAYS
: THIRTY_ONE_DAYS;
if (tooFarIntoFuture) {
log.error(
'Build expiration is set too far into the future',
buildExpiration
);
const buildExpirationDuration = buildExpiration - Date.now();
const tooFarIntoFuture = buildExpirationDuration > safeExpirationMs;
if (tooFarIntoFuture) {
log.error(
'Build expiration is set too far into the future',
buildExpiration
);
}
return tooFarIntoFuture || isInPast(buildExpiration);
}
if (env === 'production') {
return Date.now() > buildExpiration && tooFarIntoFuture;
}
return buildExpiration !== 0 && Date.now() > buildExpiration;
return buildExpiration !== 0 && isInPast(buildExpiration);
}