[BUG] claude-in-chrome: read_page/get_page_text/javascript_tool cannot access content inside shadow DOM (Google Play Console & other Angular SPAs)
Summary
The Claude-in-Chrome browser tools cannot read or interact with page content rendered inside shadow DOM (web components). On SPAs that render their main content in shadow roots — e.g. Google Play Console (Angular / Angular Material) — the tools only see the top-level page chrome (nav bar, footer) and miss the actual content (table rows, forms, buttons).
Combined with the already-reported screenshot document_idle timeout (#49027 — which also triggers on these SPAs because they keep network connections open), this leaves no working way to perceive the page content: the screenshot times out, and read_page / get_page_text / javascript_tool cannot reach the shadow-DOM content either.
Environment
- Claude-in-Chrome (Claude Code Chrome extension), via the MCP browser tools
- Browser: Microsoft Edge on Windows 11
- Target:
play.google.com/console(Angular SPA, content in shadow DOM)
Steps to reproduce
- Navigate to any Google Play Console app-list or app-content page.
computer { action: "screenshot" }-> fails:Page still loading (executeScript waited 45000ms for document_idle)(this is #49027 — these SPAs keep network connections open).read_page { filter: "interactive" }-> returns only the top nav/footer links (app-list, policy-center, settings, ...). The app rows and form controls are absent.get_page_text->No text content found.find { query: "<app name> row" }-> not found.javascript_tool:
``js``
document.querySelectorAll('a[href*="/app/"]').length // -> 0
/SomeVisibleText/i.test(document.body.innerText) // -> false
Even a recursive walk that pierces open shadow roots finds 0 of the expected content links — the content appears to live in closed shadow roots (or is otherwise unreachable from the page's light DOM via standard DOM APIs).
Expected
read_page / get_page_text / find / javascript_tool should be able to perceive content inside shadow DOM (including closed shadow roots), since the underlying CDP DOM.getDocument({ pierce: true }) and accessibility APIs can traverse shadow trees. Without this, Play Console and similar Angular/Lit/Stencil SPAs are a blind spot.
Impact
Tasks on Google Play Console (and other shadow-DOM-heavy admin consoles) cannot be automated: there is no fallback, because the screenshot path is also blocked (#49027). The only workaround is fully manual operation by the human.
Suggested direction
- Have
read_pagetraverse shadow trees via CDPAccessibility.getFullAXTree(includes shadow content) orDOM.getDocument({ pierce: true, depth: -1 }). - Provide a documented way for
javascript_toolto pierce shadow DOM, or expose a deep-query helper.
Related
- #49027 — screenshot
document_idletimeout (also triggers on these SPAs) - #52907 — request for DOM/rendering inspection capability