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

[PS-1137] Fix reseed storage (#4543)

* Fix storage reseed on logout

The check for the set vault-timeout needs to happen before all cleaning stateService
Remove check inside of reseedStorage as happens outside prior to calling it (logout/settings.component)

* Remove old limitation to only run on certain browsers

Execute on all browsers besides Safari as it does not support chrome.storage.local.get with an empty key

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get

* Revert "Remove old limitation to only run on certain browsers"

This reverts commit d7f71aa0b6.
This commit is contained in:
Daniel James Smith 2023-01-27 11:49:35 +01:00 committed by GitHub
parent 692201051a
commit 75fbccb945
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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<boolean> {
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<any> =>
new Promise((resolve) => {
chrome.storage.local.get(null, (o: any) => resolve(o));