1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Fix browser.tab.get call (#14550)

* update to expect promise from browser api polyfill rather than pass callback
This commit is contained in:
Alex Donesky 2022-04-29 09:21:06 -05:00 committed by GitHub
parent 7da6c66ea2
commit 12a088e638
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 45 deletions

View File

@ -5,7 +5,7 @@ import Snackbar from '../../../components/ui/snackbar';
import MetaFoxLogo from '../../../components/ui/metafox-logo'; import MetaFoxLogo from '../../../components/ui/metafox-logo';
import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common'; import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common';
import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'; 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'; import { EVENT } from '../../../../shared/constants/metametrics';
export default class EndOfFlowScreen extends PureComponent { export default class EndOfFlowScreen extends PureComponent {
@ -51,7 +51,7 @@ export default class EndOfFlowScreen extends PureComponent {
this._removeBeforeUnload(); this._removeBeforeUnload();
await this._onOnboardingComplete(); await this._onOnboardingComplete();
if (onboardingInitiator) { if (onboardingInitiator) {
await returnToOnboardingInitiator(onboardingInitiator); await returnToOnboardingInitiatorTab(onboardingInitiator);
} }
history.push(DEFAULT_ROUTE); history.push(DEFAULT_ROUTE);
}; };

View File

@ -1,25 +1,17 @@
import browser from 'webextension-polyfill'; import browser from 'webextension-polyfill';
import log from 'loglevel'; import log from 'loglevel';
const returnToOnboardingInitiatorTab = async (onboardingInitiator) => { export const returnToOnboardingInitiatorTab = async (onboardingInitiator) => {
const tab = await new Promise((resolve) => { let tab;
browser.tabs.update( try {
onboardingInitiator.tabId, tab = await browser.tabs.update(onboardingInitiator.id, {
{ active: true }, active: true,
// eslint-disable-next-line no-shadow });
(tab) => { } catch (error) {
if (tab) { log.debug(
resolve(tab); `An error occurred while updating tabs in returnToOnboardingInitiatorTab: ${error.message}`,
} else {
// silence console message about unchecked error
if (browser.runtime.lastError) {
log.debug(browser.runtime.lastError);
}
resolve();
}
},
); );
}); }
if (tab) { if (tab) {
window.close(); window.close();
@ -28,29 +20,7 @@ const returnToOnboardingInitiatorTab = async (onboardingInitiator) => {
log.warn( log.warn(
`Setting current tab to onboarding initiator has failed; falling back to redirect`, `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); window.location.assign(onboardingInitiator.location);
} }
}; };

View File

@ -12,7 +12,7 @@ import {
} from '../../../../helpers/constants/routes'; } from '../../../../helpers/constants/routes';
import { exportAsFile } from '../../../../helpers/utils/util'; import { exportAsFile } from '../../../../helpers/utils/util';
import { EVENT } from '../../../../../shared/constants/metametrics'; import { EVENT } from '../../../../../shared/constants/metametrics';
import { returnToOnboardingInitiator } from '../../onboarding-initiator-util'; import { returnToOnboardingInitiatorTab } from '../../onboarding-initiator-util';
export default class RevealSeedPhrase extends PureComponent { export default class RevealSeedPhrase extends PureComponent {
static contextTypes = { static contextTypes = {
@ -79,7 +79,7 @@ export default class RevealSeedPhrase extends PureComponent {
await Promise.all([setCompletedOnboarding(), setSeedPhraseBackedUp(false)]); await Promise.all([setCompletedOnboarding(), setSeedPhraseBackedUp(false)]);
if (onboardingInitiator) { if (onboardingInitiator) {
await returnToOnboardingInitiator(onboardingInitiator); await returnToOnboardingInitiatorTab(onboardingInitiator);
} }
history.replace(DEFAULT_ROUTE); history.replace(DEFAULT_ROUTE);
}; };