From 14c6d97fd1e85de9c0da343623bbaeeee0a0f907 Mon Sep 17 00:00:00 2001 From: Nick Krantz <125900171+nick-livefront@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:20:00 -0500 Subject: [PATCH 1/2] move `windowMessageHandlers` above event listeners to account for safari bug (#13773) --- .../content/content-message-handler.ts | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/browser/src/autofill/content/content-message-handler.ts b/apps/browser/src/autofill/content/content-message-handler.ts index 5f98cf348a3..55e0c071a55 100644 --- a/apps/browser/src/autofill/content/content-message-handler.ts +++ b/apps/browser/src/autofill/content/content-message-handler.ts @@ -5,6 +5,21 @@ import { ContentMessageWindowEventHandlers, } from "./abstractions/content-message-handler"; +/** + * Handlers for window messages from the content script. + * NOTE: These handlers should be above the event listener to ensure they are defined before being used. + */ +const windowMessageHandlers: ContentMessageWindowEventHandlers = { + authResult: ({ data, referrer }: { data: any; referrer: string }) => + handleAuthResultMessage(data, referrer), + webAuthnResult: ({ data, referrer }: { data: any; referrer: string }) => + handleWebAuthnResultMessage(data, referrer), + [VaultMessages.checkBwInstalled]: () => handleExtensionInstallCheck(), + duoResult: ({ data, referrer }: { data: any; referrer: string }) => + handleDuoResultMessage(data, referrer), + [VaultMessages.OpenPopup]: () => handleOpenPopupMessage(), +}; + /** * IMPORTANT: Safari seems to have a bug where it doesn't properly handle * window message events from content scripts when the listener these events @@ -18,20 +33,6 @@ setupExtensionDisconnectAction(() => { chrome.runtime.onMessage.removeListener(handleExtensionMessage); }); -/** - * Handlers for window messages from the content script. - */ -const windowMessageHandlers: ContentMessageWindowEventHandlers = { - authResult: ({ data, referrer }: { data: any; referrer: string }) => - handleAuthResultMessage(data, referrer), - webAuthnResult: ({ data, referrer }: { data: any; referrer: string }) => - handleWebAuthnResultMessage(data, referrer), - [VaultMessages.checkBwInstalled]: () => handleExtensionInstallCheck(), - duoResult: ({ data, referrer }: { data: any; referrer: string }) => - handleDuoResultMessage(data, referrer), - [VaultMessages.OpenPopup]: () => handleOpenPopupMessage(), -}; - /** * Handles the post to the web vault showing the extension has been installed */ From 55741984a7a489c955edae8c00b68a0bc5f42544 Mon Sep 17 00:00:00 2001 From: Nick Krantz <125900171+nick-livefront@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:23:00 -0500 Subject: [PATCH 2/2] open install extension in new tab (#13775) --- .../browser-extension-prompt-install.component.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/web/src/app/vault/components/browser-extension-prompt/browser-extension-prompt-install.component.html b/apps/web/src/app/vault/components/browser-extension-prompt/browser-extension-prompt-install.component.html index 709f4e8993e..eb8e3d16422 100644 --- a/apps/web/src/app/vault/components/browser-extension-prompt/browser-extension-prompt-install.component.html +++ b/apps/web/src/app/vault/components/browser-extension-prompt/browser-extension-prompt-install.component.html @@ -1,4 +1,6 @@

{{ "doNotHaveExtension" | i18n }}

- {{ "installExtension" | i18n }} + + {{ "installExtension" | i18n }} +