1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 00:33:44 +00:00

[PM-17563] Security task background synchronization (#14086)

* [PM-17563] Implement listenForTaskNotifications in default-task.service.ts

* [PM-17563] Update syncService to include userId in syncCompleted message payload

* [PM-17563] Update default-task.service to react to both pending task notifications and completed syncs

* [PM-17563] Add unit tests around task notification listening

* [PM-17563] Only check for at risk password tasks if tasks are enabled

* [PM-17563] Make userId required even if undefined

* [PM-17563] Use abstract TaskService instead of default implementation in MainBackground

* [PM-17563] Cleanup userId filtering
This commit is contained in:
Shane Melton
2025-04-04 13:42:44 -07:00
committed by GitHub
parent 1af8fe2012
commit a7fe4877d7
9 changed files with 400 additions and 39 deletions

View File

@@ -200,6 +200,7 @@ import { FolderApiService } from "@bitwarden/common/vault/services/folder/folder
import { FolderService } from "@bitwarden/common/vault/services/folder/folder.service";
import { TotpService } from "@bitwarden/common/vault/services/totp.service";
import { VaultSettingsService } from "@bitwarden/common/vault/services/vault-settings/vault-settings.service";
import { DefaultTaskService, TaskService } from "@bitwarden/common/vault/tasks";
import {
legacyPasswordGenerationServiceFactory,
legacyUsernameGenerationServiceFactory,
@@ -400,6 +401,7 @@ export default class MainBackground {
sdkLoadService: SdkLoadService;
cipherAuthorizationService: CipherAuthorizationService;
inlineMenuFieldQualificationService: InlineMenuFieldQualificationService;
taskService: TaskService;
onUpdatedRan: boolean;
onReplacedRan: boolean;
@@ -1296,6 +1298,16 @@ export default class MainBackground {
this.configService,
);
this.taskService = new DefaultTaskService(
this.stateProvider,
this.apiService,
this.organizationService,
this.configService,
this.authService,
this.notificationsService,
messageListener,
);
this.inlineMenuFieldQualificationService = new InlineMenuFieldQualificationService();
}
@@ -1377,6 +1389,11 @@ export default class MainBackground {
await this.fullSync(false);
this.backgroundSyncService.init();
this.notificationsService.startListening();
if (await this.configService.getFeatureFlag(FeatureFlag.SecurityTasks)) {
this.taskService.listenForTaskNotifications();
}
resolve();
}, 500);
});