Repository navigation
fix(desktop): pick annotations inside same-origin iframes - #192
Merged
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The browser annotation picker could not select content inside same-origin iframes, including populated
srcdocpreviews. Pointer events and hit testing stopped at the top document.Track accessible frame documents and translate selections, highlights, gestures, and screenshot crops into top viewport coordinates. Frame navigation and removal clean up listeners and stale selections; cancellation restores temporary styles. Child-frame input participates in human-control arbitration. Element context preserves the child document URL/title and the nested iframe path through validation and prompt packaging. Ordinary style/text updates invalidate geometry without rescanning the frame tree. Cross-origin support and subframe Node integration remain disabled.
Validation: 151 focused tests, desktop/web/contracts typechecks, scoped lint, and Quick CI passed. A Chromium harness running the actual picker with Electron IPC substituted verified nested/scaled frames, scrolling highlights, marquee selection, style restoration, Escape, frame insertion/navigation/removal, same-origin URL frames, opaque-origin exclusion, and populated editor selection with screenshot crops and annotation payloads. Independent review findings were fixed and rechecked. Rotation, skew, mirroring, and perspective remain unsupported for frame contents.
Synthetic browser evidence (actual picker, substituted Electron IPC):
Implemented with GPT-6 in the Codex harness.