From 12a088e638759b709b475a723157622f946de063 Mon Sep 17 00:00:00 2001 From: Alex Donesky Date: Fri, 29 Apr 2022 09:21:06 -0500 Subject: [PATCH] Fix browser.tab.get call (#14550) * update to expect promise from browser api polyfill rather than pass callback --- .../end-of-flow/end-of-flow.component.js | 4 +- .../onboarding-initiator-util.js | 52 ++++--------------- .../reveal-seed-phrase.component.js | 4 +- 3 files changed, 15 insertions(+), 45 deletions(-) diff --git a/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js b/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js index ef3a32edf..11a95ccdf 100644 --- a/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js +++ b/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js @@ -5,7 +5,7 @@ import Snackbar from '../../../components/ui/snackbar'; import MetaFoxLogo from '../../../components/ui/metafox-logo'; import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common'; import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'; -import { returnToOnboardingInitiator } from '../onboarding-initiator-util'; +import { returnToOnboardingInitiatorTab } from '../onboarding-initiator-util'; import { EVENT } from '../../../../shared/constants/metametrics'; export default class EndOfFlowScreen extends PureComponent { @@ -51,7 +51,7 @@ export default class EndOfFlowScreen extends PureComponent { this._removeBeforeUnload(); await this._onOnboardingComplete(); if (onboardingInitiator) { - await returnToOnboardingInitiator(onboardingInitiator); + await returnToOnboardingInitiatorTab(onboardingInitiator); } history.push(DEFAULT_ROUTE); }; diff --git a/ui/pages/first-time-flow/onboarding-initiator-util.js b/ui/pages/first-time-flow/onboarding-initiator-util.js index 98dc98f89..33893a90d 100644 --- a/ui/pages/first-time-flow/onboarding-initiator-util.js +++ b/ui/pages/first-time-flow/onboarding-initiator-util.js @@ -1,25 +1,17 @@ import browser from 'webextension-polyfill'; import log from 'loglevel'; -const returnToOnboardingInitiatorTab = async (onboardingInitiator) => { - const tab = await new Promise((resolve) => { - browser.tabs.update( - onboardingInitiator.tabId, - { active: true }, - // eslint-disable-next-line no-shadow - (tab) => { - if (tab) { - resolve(tab); - } else { - // silence console message about unchecked error - if (browser.runtime.lastError) { - log.debug(browser.runtime.lastError); - } - resolve(); - } - }, +export const returnToOnboardingInitiatorTab = async (onboardingInitiator) => { + let tab; + try { + tab = await browser.tabs.update(onboardingInitiator.id, { + active: true, + }); + } catch (error) { + log.debug( + `An error occurred while updating tabs in returnToOnboardingInitiatorTab: ${error.message}`, ); - }); + } if (tab) { window.close(); @@ -28,29 +20,7 @@ const returnToOnboardingInitiatorTab = async (onboardingInitiator) => { log.warn( `Setting current tab to onboarding initiator has failed; falling back to redirect`, ); - window.location.assign(onboardingInitiator.location); - } -}; - -export const returnToOnboardingInitiator = async (onboardingInitiator) => { - const tab = await new Promise((resolve) => { - // eslint-disable-next-line no-shadow - browser.tabs.get(onboardingInitiator.tabId, (tab) => { - if (tab) { - resolve(tab); - } else { - // silence console message about unchecked error - if (browser.runtime.lastError) { - log.debug(browser.runtime.lastError); - } - resolve(); - } - }); - }); - - if (tab) { - await returnToOnboardingInitiatorTab(onboardingInitiator); - } else { + window.location.assign(onboardingInitiator.location); } }; diff --git a/ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.component.js b/ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.component.js index 24d0682ec..af02b4761 100644 --- a/ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.component.js +++ b/ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.component.js @@ -12,7 +12,7 @@ import { } from '../../../../helpers/constants/routes'; import { exportAsFile } from '../../../../helpers/utils/util'; import { EVENT } from '../../../../../shared/constants/metametrics'; -import { returnToOnboardingInitiator } from '../../onboarding-initiator-util'; +import { returnToOnboardingInitiatorTab } from '../../onboarding-initiator-util'; export default class RevealSeedPhrase extends PureComponent { static contextTypes = { @@ -79,7 +79,7 @@ export default class RevealSeedPhrase extends PureComponent { await Promise.all([setCompletedOnboarding(), setSeedPhraseBackedUp(false)]); if (onboardingInitiator) { - await returnToOnboardingInitiator(onboardingInitiator); + await returnToOnboardingInitiatorTab(onboardingInitiator); } history.replace(DEFAULT_ROUTE); };