Fix window focus not always working
This commit is contained in:
parent
7abc7fd0e7
commit
ce92591b63
@ -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(); }
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user