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 */