diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index f281fe356d..fcde4e7c15 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -678,6 +678,9 @@ export default class MainBackground { this.vaultFilterService.clear(), ]); + //Needs to be checked before state is cleaned + const needStorageReseed = await this.needsStorageReseed(); + await this.stateService.clean({ userId: userId }); if (userId == null || userId === (await this.stateService.getUserId())) { @@ -685,17 +688,25 @@ export default class MainBackground { this.messagingService.send("doneLoggingOut", { expired: expired, userId: userId }); } + if (needStorageReseed) { + await this.reseedStorage(); + } + if (BrowserApi.manifestVersion === 3) { BrowserApi.sendMessage("updateBadge"); } await this.refreshBadge(); await this.mainContextMenuHandler.noAccess(); - await this.reseedStorage(); this.notificationsService.updateConnection(false); await this.systemService.clearPendingClipboard(); await this.systemService.startProcessReload(this.authService); } + private async needsStorageReseed(): Promise { + const currentVaultTimeout = await this.stateService.getVaultTimeout(); + return currentVaultTimeout == null ? false : true; + } + async collectPageDetailsForContentScript(tab: any, sender: string, frameId: number = null) { if (tab == null || !tab.id) { return; @@ -736,11 +747,6 @@ export default class MainBackground { return; } - const currentVaultTimeout = await this.stateService.getVaultTimeout(); - if (currentVaultTimeout == null) { - return; - } - const getStorage = (): Promise => new Promise((resolve) => { chrome.storage.local.get(null, (o: any) => resolve(o));