From d081cffbd7d2cbb53f36c4bc7824a9d6cbe2bae5 Mon Sep 17 00:00:00 2001 From: Jason Ng Date: Fri, 8 Sep 2023 09:28:41 -0400 Subject: [PATCH] [PM-1722] gracefully fail if site prompts user for passkey on load (#6089) * added error logic to look for options.mediation in page-script * moved the options mediation logic into the try catch. changed error to FallbackRequestedError --- apps/browser/src/vault/fido2/content/page-script.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/browser/src/vault/fido2/content/page-script.ts b/apps/browser/src/vault/fido2/content/page-script.ts index aaf3bec9cd6..42d695b235b 100644 --- a/apps/browser/src/vault/fido2/content/page-script.ts +++ b/apps/browser/src/vault/fido2/content/page-script.ts @@ -1,3 +1,5 @@ +import { FallbackRequestedError } from "@bitwarden/common/vault/abstractions/fido2/fido2-client.service.abstraction"; + import { WebauthnUtils } from "../../../browser/webauthn-utils"; import { MessageType } from "./messaging/message"; @@ -95,7 +97,12 @@ navigator.credentials.get = async ( abortController?: AbortController ): Promise => { const fallbackSupported = browserNativeWebauthnSupport; + try { + if (options?.mediation && options.mediation !== "optional") { + throw new FallbackRequestedError(); + } + const response = await messenger.request( { type: MessageType.CredentialGetRequest,