← Commit history

pup-lanes: ext-lane screenshots fail on a fully occluded window (Chrome image readback failed); say so and give the fix

John Lauer ·c4a36712ad ·1mo ago ·parent 9eab75a
1 file changed +1
skills/pup-lanes/SKILL.md+1
@@ -29,6 +29,7 @@ only CDP can do. pup no longer falls back to CDP on its own for any reason. - Pro: sites load. This is the reason it exists and the reason it is the default. - Pro: one shared adom-you browser, so logins and cookies accumulate for every thread, and every window carries the full toolbar including nbe. - Con: `pup_eval` runs in the page's MAIN world, so a page with a strict Content-Security-Policy (wiki.adom.inc, claude.ai) refuses it with "Evaluating a string as JavaScript violates the following Content Security Policy". Use `pup_screenshot`, `pup_list_tabs`, `pup_navigate` and the other DOM-free verbs there, or `lane:"cdp"` if you truly must run script on such a page and accept that vendor sites will not load in that window.+- Con: `pup_screenshot` needs the window to have a rendered frame. Chrome stops painting a window that is COMPLETELY covered by other windows, and the extension capture then fails with Chrome's own "Failed to capture tab: image readback failed" (measured 2026-09-14: 0 of 20 tabs captured under a maximized Edge, 20 of 20 the moment the window was raised). A partly visible window is fine. If you hit that error, the window is fully occluded: raise it with a `foregroundReason` the user gave you, or open with `lane:"cdp"` whose capture forces a frame. The CDP lane never has this problem. - Con: no trusted input events, no iframe targeting, no element or full-resolution screenshots, no recording, no selector-driven downloads, no `realKeystrokes`, no separate profile (backlog: pup-bridge#113), no `highFps`, no `webSecurity:false`. Each of those verbs answers `lane_needs_cdp` with the fix. Annotate DOES work here since 2.0.569 (the overlay is file-injected, which page CSP cannot refuse, and the capture is composed in the binary).  **CDP lane**