mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
fbf051d539
* fix(extension): skip chrome-extension:// tabs in resolveTabId fallback Remove the unsafe fallback that returned `tabs[0]` regardless of URL type. When no web-accessible tab exists in the automation window (e.g. a New Tab Override extension replaced about:blank with its own chrome-extension:// page), we now always create a fresh about:blank tab instead. This prevents chrome.debugger.attach from failing with "Cannot access a chrome-extension:// URL of different extension". Fixes #195, fixes #197 * refactor(extension): rename isWebUrl → isDebuggableUrl & reuse tabs in resolveTabId Improvements over the original fix: 1. Rename isWebUrl() → isDebuggableUrl(): better reflects the intent — the function determines whether a URL can be attached via CDP, not just whether it's a "web" URL (about:blank is debuggable but not really a web URL). 2. Reuse existing non-debuggable tabs: when a New Tab Override extension replaces about:blank with chrome-extension://, use chrome.tabs.update() to navigate the existing tab to about:blank instead of creating a new one. This prevents orphan tab accumulation since chrome.tabs.create() may also get intercepted by the same extension. 3. Only fall back to chrome.tabs.create() when the window has zero tabs, which is the truly empty-window edge case. --------- Co-authored-by: jackwener <jakevingoo@gmail.com>