mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 15:53:27 +00:00
[PM-469] [PM-1325] [PS-1165] [PS-1257] Small refactorings/improvements on the desktop app main (#4704)
* Only pass necessary service to power-monitor
PowerMonitorMain only requires the messagingService instead of a full reference to Main
* Remove never changing constructor params
Window.main has a defaultWidth and defaultHeight that never change, so they do not need to get passed in from outside
hideTitleBar is always true, so there is no need to make it a param
* Remove projectName from updater
This is likely another relict from sharing this previously with dircetory-connector and is not needed anymore
* Only pass necessary service to MenuMain
MenuMain only needs service references instead of a full reference to Main
* Refactor biometrics service
Create BiometricsService that takes care of loading the platformspecifc services, hiding the implementation details
Make it clearer which dependencies are needed by a specific biometrics-service (compile-error vs runtime-error)
Add unit tests
Isolate biometrics import/exports with a barrel file
* Fix #3148
recordActivity was only getting called when user-activity in the main window is recognized
When using biometrics to unlock, the Windows Hello/TouchID prompt would be focused and no input would be recognised. LastActive would have an old value and the vault would get locked
* Improve reloading with biometrics
* Mock import of desktop-native
* Add mock for "@bitwarden/desktop-native-linux-x64-musl"
* Revert "Add mock for "@bitwarden/desktop-native-linux-x64-musl""
This reverts commit 69771b94bf.
* mock the exports of desktop-native
* Pass process.platform inot BiometricsService
This commit is contained in:
committed by
GitHub
parent
e480f7cfbc
commit
e9d0f75b8a
@@ -45,34 +45,23 @@ export class SystemService implements SystemServiceAbstraction {
|
||||
}
|
||||
|
||||
this.cancelProcessReload();
|
||||
this.reloadInterval = setInterval(async () => await this.executeProcessReload(), 10000);
|
||||
}
|
||||
|
||||
private async inactiveMoreThanSeconds(seconds: number): Promise<boolean> {
|
||||
const lastActive = await this.stateService.getLastActive();
|
||||
if (lastActive != null) {
|
||||
const diffMs = new Date().getTime() - lastActive;
|
||||
return diffMs >= seconds * 1000;
|
||||
}
|
||||
return true;
|
||||
await this.executeProcessReload();
|
||||
}
|
||||
|
||||
private async executeProcessReload() {
|
||||
const accounts = await firstValueFrom(this.stateService.accounts$);
|
||||
const doRefresh =
|
||||
accounts == null ||
|
||||
Object.keys(accounts).length == 0 ||
|
||||
(await this.inactiveMoreThanSeconds(5));
|
||||
|
||||
const biometricLockedFingerprintValidated =
|
||||
await this.stateService.getBiometricFingerprintValidated();
|
||||
if (doRefresh && !biometricLockedFingerprintValidated) {
|
||||
if (!biometricLockedFingerprintValidated) {
|
||||
clearInterval(this.reloadInterval);
|
||||
this.reloadInterval = null;
|
||||
this.messagingService.send("reloadProcess");
|
||||
if (this.reloadCallback != null) {
|
||||
await this.reloadCallback();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (this.reloadInterval == null) {
|
||||
this.reloadInterval = setInterval(async () => await this.executeProcessReload(), 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user