Ensure sender cert refresh timer resets only when necessary
This commit is contained in:
parent
e5e4f90974
commit
be6ae038dc
1 changed files with 14 additions and 2 deletions
|
@ -47,8 +47,15 @@ function initialize({ events, storage, navigator, logger }) {
|
||||||
);
|
);
|
||||||
const expires = decoded.expires.toNumber();
|
const expires = decoded.expires.toNumber();
|
||||||
|
|
||||||
const time = Math.min(now + ONE_DAY, expires - MINIMUM_TIME_LEFT);
|
// If we have a time in place and it's already before the safety zone before expire,
|
||||||
|
// we keep it
|
||||||
|
if (scheduledTime && scheduledTime <= expires - MINIMUM_TIME_LEFT) {
|
||||||
|
setTimeoutForNextRun(scheduledTime);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, we reset every day, or earlier if the safety zone requires it
|
||||||
|
const time = Math.min(now + ONE_DAY, expires - MINIMUM_TIME_LEFT);
|
||||||
setTimeoutForNextRun(time);
|
setTimeoutForNextRun(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,13 +78,18 @@ function initialize({ events, storage, navigator, logger }) {
|
||||||
decoded.serialized = arrayBuffer;
|
decoded.serialized = arrayBuffer;
|
||||||
|
|
||||||
storage.put('senderCertificate', decoded);
|
storage.put('senderCertificate', decoded);
|
||||||
|
scheduledTime = null;
|
||||||
|
|
||||||
scheduleNextRotation();
|
scheduleNextRotation();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(
|
logger.error(
|
||||||
'refreshSenderCertificate: Get failed. Trying again in two minutes...',
|
'refreshSenderCertificate: Get failed. Trying again in two minutes...',
|
||||||
error && error.stack ? error.stack : error
|
error && error.stack ? error.stack : error
|
||||||
);
|
);
|
||||||
setTimeout(runWhenOnline, 2 * 60 * 1000);
|
|
||||||
|
scheduledTime = Date.now() + 5 * 60 * 1000;
|
||||||
|
|
||||||
|
scheduleNextRotation();
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshOurProfile();
|
refreshOurProfile();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue