Repository navigation
fix(record): deduplicate clicks forwarded by label activation - #652
Open
columbia11 wants to merge 1 commit into
Open
columbia11 wants to merge 1 commit into
columbia11 wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
A real pointer click on a clickable label produces a trusted label click followed by a trusted control click, both with
detail: 1. The recorder only suppressed a forwarded click withdetail: 0, so one checkbox activation could be recorded as separate label and input actions.Suppress the associated control click only after the label was actually recorded and its control is enabled. Use a bounded, single-use activation record that expires after the event task and is cleared on disposal. Preserve the originating event's cancellation and dispatch state to distinguish a synchronous handler-forwarded click from an independent control click after the handler returns.
Add real Chrome regressions covering pointer and plain labels, implicit labels, direct and subsequent control clicks, Space activation, cancelled labels, handler forwarding, disabled and missing controls, nested buttons, activation expiry, and programmatic clicks. The change is limited to the collector and its browser tests; it does not change the buffer or reducer.
Fixes #645.
Validation against upstream
mainat9084a36e:git diff --check: passed.node:url/processambient types in the new Node browser fixture; production code adds none. With the same installed Node ambient types loaded on both sides, both report 2757 diagnostics with zero new fingerprints. No dependencies or project type configuration were changed.The browser tests bundle the production collector and use an owned headless Chrome profile with real CDP pointer/keyboard input. They do not claim installed-extension, CLI, daemon, or recipe-playback end-to-end coverage.