Fix window focus not always working

This commit is contained in:
toasted-nutbread 2019-10-19 22:55:32 -04:00
parent 7abc7fd0e7
commit ce92591b63

View File

@ -367,24 +367,6 @@ async function apiFindTab(timeout, checkUrl) {
}
async function apiFocusTab(tab) {
if (typeof chrome.windows === 'object' && chrome.windows !== null) {
const tabWindow = await new Promise((resolve) => {
chrome.windows.get(tab.windowId, {}, (tabWindow) => {
const e = chrome.runtime.lastError;
if (e) { reject(e); }
else { resolve(tabWindow); }
});
});
if (!tabWindow.focused) {
await new Promise((resolve, reject) => {
chrome.windows.update(tab.windowId, {focused: true}, () => {
const e = chrome.runtime.lastError;
if (e) { reject(e); }
else { resolve(); }
});
});
}
}
await new Promise((resolve, reject) => {
chrome.tabs.update(tab.id, {active: true}, () => {
const e = chrome.runtime.lastError;
@ -392,4 +374,26 @@ async function apiFocusTab(tab) {
else { resolve(); }
});
});
if (!(typeof chrome.windows === 'object' && chrome.windows !== null)) {
// Windows not supported (e.g. on Firefox mobile)
return;
}
const tabWindow = await new Promise((resolve) => {
chrome.windows.get(tab.windowId, {}, (tabWindow) => {
const e = chrome.runtime.lastError;
if (e) { reject(e); }
else { resolve(tabWindow); }
});
});
if (!tabWindow.focused) {
await new Promise((resolve, reject) => {
chrome.windows.update(tab.windowId, {focused: true}, () => {
const e = chrome.runtime.lastError;
if (e) { reject(e); }
else { resolve(); }
});
});
}
}