waitForTabLoad function application exported
Last updated: 2026-03-05T10:53:28.864Z
Metrics
LOC: 41
Complexity: 4
Params: 3
Signature
waitForTabLoad(
tabId: number,
timeoutMs = 30_000,
): : Promise<boolean>
Summary
Wait for a tab to finish loading (status === "complete").
Source Code
export function waitForTabLoad(
tabId: number,
timeoutMs = 30_000,
): Promise<boolean> {
return new Promise((resolve) => {
const timer = setTimeout(() => {
chrome.tabs.onUpdated.removeListener(listener);
log.warn(`Tab ${tabId} load timed out after ${timeoutMs}ms`);
resolve(false);
}, timeoutMs);
function listener(
updatedTabId: number,
changeInfo: chrome.tabs.TabChangeInfo,
) {
if (updatedTabId === tabId && changeInfo.status === "complete") {
clearTimeout(timer);
chrome.tabs.onUpdated.removeListener(listener);
resolve(true);
}
}
chrome.tabs.onUpdated.addListener(listener);
// Check if already loaded
chrome.tabs
.get(tabId)
.then((tab) => {
if (tab.status === "complete") {
clearTimeout(timer);
chrome.tabs.onUpdated.removeListener(listener);
resolve(true);
}
})
.catch(() => {
clearTimeout(timer);
chrome.tabs.onUpdated.removeListener(listener);
resolve(false);
});
});
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| listener | dynamic_call |
| tabId | dynamic_call |
Impact (Incoming)
| Source | Type |
|---|---|
| navigateAndWait | calls |