1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-09-29 04:17:41 +02:00

[bug] Don't force an active user to init activity recording functions

This commit is contained in:
addison 2022-02-07 11:41:51 -05:00
parent 6da6e46900
commit 9c7f399a76

View File

@ -26,6 +26,7 @@ import { routerTransition } from "./app-routing.animations";
}) })
export class AppComponent implements OnInit { export class AppComponent implements OnInit {
private lastActivity: number = null; private lastActivity: number = null;
private activeUserId: string;
constructor( constructor(
private toastrService: ToastrService, private toastrService: ToastrService,
@ -46,19 +47,16 @@ export class AppComponent implements OnInit {
if (BrowserApi.getBackgroundPage() == null) { if (BrowserApi.getBackgroundPage() == null) {
return; return;
} }
let activeUserId: string = null;
this.stateService.activeAccount.subscribe((userId) => { this.stateService.activeAccount.subscribe((userId) => {
activeUserId = userId; this.activeUserId = userId;
}); });
this.ngZone.runOutsideAngular(() => { this.ngZone.runOutsideAngular(() => {
if (activeUserId != null) { window.onmousedown = () => this.recordActivity();
window.onmousedown = () => this.recordActivity(activeUserId); window.ontouchstart = () => this.recordActivity();
window.ontouchstart = () => this.recordActivity(activeUserId); window.onclick = () => this.recordActivity();
window.onclick = () => this.recordActivity(activeUserId); window.onscroll = () => this.recordActivity();
window.onscroll = () => this.recordActivity(activeUserId); window.onkeypress = () => this.recordActivity();
window.onkeypress = () => this.recordActivity(activeUserId);
}
}); });
(window as any).bitwardenPopupMainMessageListener = async ( (window as any).bitwardenPopupMainMessageListener = async (
@ -171,14 +169,18 @@ export class AppComponent implements OnInit {
} }
} }
private async recordActivity(userId: string) { private async recordActivity() {
if (this.activeUserId == null) {
return;
}
const now = new Date().getTime(); const now = new Date().getTime();
if (this.lastActivity != null && now - this.lastActivity < 250) { if (this.lastActivity != null && now - this.lastActivity < 250) {
return; return;
} }
this.lastActivity = now; this.lastActivity = now;
this.stateService.setLastActive(now, { userId: userId }); await this.stateService.setLastActive(now, { userId: this.activeUserId });
} }
private showToast(msg: any) { private showToast(msg: any) {