From e84cb958878582638681897ccb5745508e825005 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 15 Mar 2022 17:46:09 -0300 Subject: [PATCH] chrome.tabs.update does not work on async request interception, so using a delay --- .../src/wxBackend.ts | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index 66debf266..643735147 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -226,20 +226,18 @@ function makeSyncWalletRedirect( .join("&"); innerUrl.hash = innerUrl.hash + "?" + hParams; } - // if (isFirefox()) { - // // Some platforms don't support the sync redirect (yet), so fall back to - // // async redirect after a timeout. - // const doit = async (): Promise => { - // await waitMs(150); - // const tab = await getTab(tabId); - // if (tab.url === oldUrl) { - // chrome.tabs.update(tabId, { url: innerUrl.href }); - // } - // }; - // doit(); - // } - console.log("redirecting to", innerUrl.href); - chrome.tabs.update(tabId, { url: innerUrl.href }); + // Some platforms don't support the sync redirect (yet), so fall back to + // async redirect after a timeout. + const doit = async (): Promise => { + await waitMs(150); + const tab = await getTab(tabId); + if (tab.url === oldUrl) { + console.log("redirecting to", innerUrl.href); + chrome.tabs.update(tabId, { url: innerUrl.href }); + } + }; + doit(); + return { redirectUrl: innerUrl.href }; }