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 { 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);
};

View File

@ -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);
}
};

View File

@ -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);
};