mirror of
https://github.com/bitwarden/browser.git
synced 2024-10-19 07:35:48 +02:00
4e1958f417
* Support split jslib * Fix tests * Bump jslib
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import { VaultTimeoutService as BaseVaultTimeoutService } from 'jslib-common/services/vaultTimeout.service';
|
|
import { SafariApp } from '../browser/safariApp';
|
|
|
|
export default class VaultTimeoutService extends BaseVaultTimeoutService {
|
|
|
|
startCheck() {
|
|
this.checkVaultTimeout();
|
|
if (this.platformUtilsService.isSafari()) {
|
|
this.checkSafari();
|
|
} else {
|
|
setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds
|
|
}
|
|
}
|
|
|
|
// This is a work-around to safari adding an arbitary delay to setTimeout and
|
|
// setIntervals. It works by calling the native extension which sleeps for 10s,
|
|
// efficiently replicating setInterval.
|
|
async checkSafari() {
|
|
while (true) {
|
|
try {
|
|
await SafariApp.sendMessageToApp('sleep');
|
|
this.checkVaultTimeout();
|
|
} catch (e) {
|
|
// tslint:disable-next-line
|
|
console.log('Exception Safari VaultTimeout', e);
|
|
}
|
|
}
|
|
}
|
|
}
|