waitForUrlPattern function application exported

Last updated: 2026-03-05T10:53:28.864Z

Metrics

LOC: 30 Complexity: 4 Params: 4

Signature

waitForUrlPattern( tabId: number, urlFragment: string, timeoutMs = 15_000, ): : Promise<boolean>

Summary

Wait for a URL pattern to appear in the tab (e.g. after a redirect).

Source Code

export function waitForUrlPattern(
  tabId: number,
  urlFragment: string,
  timeoutMs = 15_000,
): Promise<boolean> {
  return new Promise((resolve) => {
    const timer = setTimeout(() => {
      chrome.tabs.onUpdated.removeListener(listener);
      resolve(false);
    }, timeoutMs);

    function listener(
      updatedTabId: number,
      changeInfo: chrome.tabs.TabChangeInfo,
      tab: chrome.tabs.Tab,
    ) {
      if (
        updatedTabId === tabId &&
        changeInfo.status === "complete" &&
        tab.url?.includes(urlFragment)
      ) {
        clearTimeout(timer);
        chrome.tabs.onUpdated.removeListener(listener);
        resolve(true);
      }
    }

    chrome.tabs.onUpdated.addListener(listener);
  });
}

Members

Name Kind Visibility Status Signature
listener function - listener( updatedTabId: number, changeInfo: chrome.tabs.TabChangeInfo, tab: chrome.tabs.Tab, )

Dependencies (Outgoing)

graph LR waitForUrlPattern["waitForUrlPattern"] listener["listener"] waitForUrlPattern -->|dynamic_call| listener style waitForUrlPattern fill:#dbeafe,stroke:#2563eb,stroke-width:2px click waitForUrlPattern "ad4ebf9ec28c0540.html" click listener "8c93922ea0749d9f.html"
TargetType
listener dynamic_call

No incoming dependencies.