2022-03-18 20:07:05 +01:00
|
|
|
import browser from 'webextension-polyfill';
|
2021-02-04 19:15:23 +01:00
|
|
|
import log from 'loglevel';
|
2019-11-22 18:03:51 +01:00
|
|
|
|
2022-04-29 16:21:06 +02:00
|
|
|
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}`,
|
2021-02-04 19:15:23 +01:00
|
|
|
);
|
2022-04-29 16:21:06 +02:00
|
|
|
}
|
2019-11-22 18:03:51 +01:00
|
|
|
|
2020-08-14 13:47:43 +02:00
|
|
|
if (tab) {
|
2021-02-04 19:15:23 +01:00
|
|
|
window.close();
|
2020-08-14 13:47:43 +02:00
|
|
|
} else {
|
2022-03-18 20:07:05 +01:00
|
|
|
// this case can happen if the tab was closed since being checked with `browser.tabs.get`
|
2020-11-03 00:41:28 +01:00
|
|
|
log.warn(
|
|
|
|
`Setting current tab to onboarding initiator has failed; falling back to redirect`,
|
2021-02-04 19:15:23 +01:00
|
|
|
);
|
2019-11-22 18:03:51 +01:00
|
|
|
|
2021-02-04 19:15:23 +01:00
|
|
|
window.location.assign(onboardingInitiator.location);
|
2019-11-22 18:03:51 +01:00
|
|
|
}
|
2021-02-04 19:15:23 +01:00
|
|
|
};
|