mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
If `chrome.debugger.attach` succeeds but a subsequent CDP domain enable rejects — most notably `Page.enable`, when the tab navigates to a chrome:// URL or the Web Store in the gap between the two calls — the driver left the tab in an unrecoverable state. `attachedTabs` never recorded the tabId, so the next `ensureAttached` re-attached and failed permanently with "Another debugger is already attached" until the extension was reloaded. Detach the debuggee directly in the failure path (the public `detach()` is a no-op here because the id is not cached yet) so the next attempt starts from a clean slate. Adds a regression test that fails on the previous code, where the rollback never ran and `detach` was never called. Co-Authored-By: Claude <noreply@anthropic.com>