1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-08 19:43:45 +00:00

Improve SDK direct function usage (#13353)

* feat: initalize WASM/SDK directly after load

* fix: default sdk service trying to set log level

* feat: wait for sdk to load in sdk service

* fix: add required disposable polyfills

* feat: update sdk version

* feat: replace rc-specific workaround with global polyfill

* fix: sdk service tests
This commit is contained in:
Andreas Coroiu
2025-02-26 09:08:42 +01:00
committed by GitHub
parent 44d50a70c2
commit ce5a5e3649
23 changed files with 98 additions and 31 deletions

View File

@@ -1,5 +1,7 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import "core-js/proposals/explicit-resource-management";
import { filter, firstValueFrom, map, merge, Subject, timeout } from "rxjs";
import { CollectionService, DefaultCollectionService } from "@bitwarden/admin-console/common";
@@ -1290,7 +1292,7 @@ export default class MainBackground {
}
this.containerService.attachToGlobal(self);
await this.sdkLoadService.load();
await this.sdkLoadService.loadAndInit();
// Only the "true" background should run migrations
await this.stateService.init({ runMigrations: true });

View File

@@ -60,8 +60,10 @@ async function importModule(): Promise<GlobalWithWasmInit["initSdk"]> {
return (globalThis as GlobalWithWasmInit).initSdk;
}
export class BrowserSdkLoadService implements SdkLoadService {
constructor(readonly logService: LogService) {}
export class BrowserSdkLoadService extends SdkLoadService {
constructor(readonly logService: LogService) {
super();
}
async load(): Promise<void> {
const startTime = performance.now();

View File

@@ -1,2 +1,3 @@
import "core-js/stable";
import "core-js/proposals/explicit-resource-management";
import "zone.js";

View File

@@ -32,7 +32,7 @@ export class InitService {
init() {
return async () => {
await this.sdkLoadService.load();
await this.sdkLoadService.loadAndInit();
await this.stateService.init({ runMigrations: false }); // Browser background is responsible for migrations
await this.i18nService.init();
this.twoFactorService.init();