From ca5b033cfd303d7c5f79dc56d4f180b6ae952d3e Mon Sep 17 00:00:00 2001 From: Robyn MacCallum Date: Mon, 10 Jul 2023 16:29:10 -0400 Subject: [PATCH] [PM-2560] Fix Firefox default passkeys handling (#5690) * Return callback response in addListener * Add clarifying comment * Isolate returning the callback to fido2 commands * Update apps/browser/src/platform/browser/browser-api.ts Co-authored-by: Cesar Gonzalez * Fix formatting --------- Co-authored-by: Cesar Gonzalez --- apps/browser/src/platform/browser/browser-api.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/browser/src/platform/browser/browser-api.ts b/apps/browser/src/platform/browser/browser-api.ts index ae72e2ac12f..cb9778832e6 100644 --- a/apps/browser/src/platform/browser/browser-api.ts +++ b/apps/browser/src/platform/browser/browser-api.ts @@ -184,7 +184,18 @@ export class BrowserApi { name: string, callback: (message: any, sender: chrome.runtime.MessageSender, response: any) => unknown ) { - chrome.runtime.onMessage.addListener(callback); + chrome.runtime.onMessage.addListener( + (msg: any, sender: chrome.runtime.MessageSender, sendResponse: any) => { + const messageResponse = callback(msg, sender, sendResponse); + + if (!messageResponse) { + return false; + } + + Promise.resolve(messageResponse); + return true; + } + ); // Keep track of all the events registered in a Safari popup so we can remove // them when the popup gets unloaded, otherwise we cause a memory leak