diff --git a/apps/desktop/desktop_native/napi/src/lib.rs b/apps/desktop/desktop_native/napi/src/lib.rs index 6377246b34b..e095899dc07 100644 --- a/apps/desktop/desktop_native/napi/src/lib.rs +++ b/apps/desktop/desktop_native/napi/src/lib.rs @@ -152,17 +152,17 @@ pub mod biometrics { #[napi] pub mod biometrics_v2 { - use desktop_core::biometric_v2::BiometricTrait; + use desktop_core::biometric::BiometricTrait; #[napi] pub struct BiometricLockSystem { - inner: desktop_core::biometric_v2::BiometricLockSystem, + inner: desktop_core::biometric::BiometricLockSystem, } #[napi] pub fn init_biometric_system() -> napi::Result { Ok(BiometricLockSystem { - inner: desktop_core::biometric_v2::BiometricLockSystem::new(), + inner: desktop_core::biometric::BiometricLockSystem::new(), }) } diff --git a/apps/desktop/src/services/biometric-message-handler.service.spec.ts b/apps/desktop/src/services/biometric-message-handler.service.spec.ts index ad555729ab3..563e303328a 100644 --- a/apps/desktop/src/services/biometric-message-handler.service.spec.ts +++ b/apps/desktop/src/services/biometric-message-handler.service.spec.ts @@ -7,19 +7,15 @@ import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; import { CryptoFunctionService } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; +import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { Utils } from "@bitwarden/common/platform/misc/utils"; import { FakeAccountService } from "@bitwarden/common/spec"; import { CsprngArray } from "@bitwarden/common/types/csprng"; import { UserId } from "@bitwarden/common/types/guid"; -import { DialogService, I18nMockService } from "@bitwarden/components"; -import { - KeyService, - BiometricsService, - BiometricStateService, - BiometricsCommands, -} from "@bitwarden/key-management"; +import { DialogService } from "@bitwarden/components"; +import { KeyService, BiometricsService, BiometricsCommands } from "@bitwarden/key-management"; import { DesktopSettingsService } from "../platform/services/desktop-settings.service"; @@ -47,31 +43,29 @@ describe("BiometricMessageHandlerService", () => { let keyService: MockProxy; let encryptService: MockProxy; let logService: MockProxy; + let configService: MockProxy; let messagingService: MockProxy; let desktopSettingsService: DesktopSettingsService; - let biometricStateService: BiometricStateService; let biometricsService: MockProxy; let dialogService: MockProxy; let accountService: AccountService; let authService: MockProxy; let ngZone: MockProxy; - let i18nService: MockProxy; beforeEach(() => { cryptoFunctionService = mock(); keyService = mock(); encryptService = mock(); + configService = mock(); logService = mock(); messagingService = mock(); desktopSettingsService = mock(); - biometricStateService = mock(); biometricsService = mock(); dialogService = mock(); accountService = new FakeAccountService(accounts); authService = mock(); ngZone = mock(); - i18nService = mock(); desktopSettingsService.browserIntegrationEnabled$ = of(false); desktopSettingsService.browserIntegrationFingerprintEnabled$ = of(false); @@ -94,6 +88,7 @@ describe("BiometricMessageHandlerService", () => { cryptoFunctionService.rsaEncrypt.mockResolvedValue( Utils.fromUtf8ToArray("encrypted") as CsprngArray, ); + configService.getFeatureFlag.mockResolvedValue(false); service = new BiometricMessageHandlerService( cryptoFunctionService, @@ -102,13 +97,12 @@ describe("BiometricMessageHandlerService", () => { logService, messagingService, desktopSettingsService, - biometricStateService, biometricsService, + configService, dialogService, accountService, authService, ngZone, - i18nService, ); }); @@ -160,13 +154,12 @@ describe("BiometricMessageHandlerService", () => { logService, messagingService, desktopSettingsService, - biometricStateService, + configService, biometricsService, dialogService, accountService, authService, ngZone, - i18nService, ); }); diff --git a/apps/desktop/src/services/biometric-message-handler.service.ts b/apps/desktop/src/services/biometric-message-handler.service.ts index 502ce04b397..16d37b09f02 100644 --- a/apps/desktop/src/services/biometric-message-handler.service.ts +++ b/apps/desktop/src/services/biometric-message-handler.service.ts @@ -86,22 +86,14 @@ export class BiometricMessageHandlerService { private ngZone: NgZone, ) { // This will be removed after the flag is rolled out - this.configService - .getFeatureFlag(FeatureFlag.SystemBiometricsV2) - .then(async (enabled) => { - this.logService.info( - "[Native Messaging IPC] SystemBiometricsV2 feature flag is " + enabled, - ); - if (enabled) { - await this.biometricsService.enableV2BiometricsBackend(); - } - }) - .catch((e) => { - this.logService.error( - "[Native Messaging IPC] Failed to get SystemBiometricsV2 feature flag", - e, - ); - }); + // eslint-disable-next-line @typescript-eslint/no-floating-promises + (async () => { + const enabled = awaithis.configService.getFeatureFlag(FeatureFlag.SystemBiometricsV2); + this.logService.info("[Native Messaging IPC] SystemBiometricsV2 feature flag is " + enabled); + if (enabled) { + await this.biometricsService.enableV2BiometricsBackend(); + } + })(); combineLatest([ this.desktopSettingService.browserIntegrationEnabled$,