Repository navigation
Follow native and observable media and timeline states - #202
Merged
Merged
Conversation
jdalton
marked this pull request as ready for review
September 5, 2026 19:42
jdalton
force-pushed
the
preserve/media-time-pseudos
branch
2 times, most recently
from
September 6, 2026 11:40
7daac5c to
e6769cf
Compare
jdalton
force-pushed
the
preserve/media-time-pseudos
branch
from
September 7, 2026 15:27
e6769cf to
989282d
Compare
jdalton
added a commit
that referenced
this pull request
Sep 17, 2026
jdalton
added a commit
that referenced
this pull request
Sep 17, 2026
Consolidated commits: - 473175d perf(bench): compare selector engines with grouped charts (#208) Original author: John-David Dalton <jdalton@users.noreply.github.com> - fd76c1c fix(selectors): follow observable media and timeline states (#202) Original author: John-David Dalton <jdalton@users.noreply.github.com> - 4f79d3a chore: prepare 2.3.0-prerelease Original author: jdalton <john.david.dalton@gmail.com> - 03a3cdd docs(bench): show animated prerelease comparisons by selector category Original author: jdalton <john.david.dalton@gmail.com> - febeb19 perf(selectors): streamline token, logical, and form-state queries Original author: jdalton <john.david.dalton@gmail.com> - b87cdd0 test(selectors): pin disabled-fieldset liveness and shadow-tree behavior Original author: jdalton <john.david.dalton@gmail.com> - 935d7f2 bench: establish practical selector comparisons and performance targets Original author: jdalton <john.david.dalton@gmail.com> - e430748 perf(selectors): specialize selective chains and common positional and logical queries Original author: jdalton <john.david.dalton@gmail.com> - 849a0bb perf(selectors): return simple first matches without collecting all candidates Original author: jdalton <john.david.dalton@gmail.com> - d19203b perf(bench): record common-query gains and first-match comparisons Original author: jdalton <john.david.dalton@gmail.com> - 4776ec5 docs: lead with selector performance and current benchmark results Original author: jdalton <john.david.dalton@gmail.com> - 39a0911 perf: compile first-match query plans and specialize positional matching Original author: jdalton <john.david.dalton@gmail.com> - 6a0ec43 docs: publish V8 analysis and refreshed selector benchmarks Original author: jdalton <john.david.dalton@gmail.com>
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.
Media selectors now use native host state when available and fall back to observable HTML audio/video properties. This fixes ordinary elements matching paused/seeking states, playback at time zero or during buffering, and muting that depended on the audio content attribute. Buffering can match while playback remains active. Timed stalls and volume locks require native support; the engine does not infer them from a network flag.
Time selectors delegate to the host timeline and match nothing when it is unavailable. Functional
:current()validates a nonempty compound-selector list, including with no candidates, and follows existing forgiving-list behavior.The changes follow the draft resource-state definitions and time-dimensional definitions. The retained browser assertions now live under
test/repo/e2eand run through the default CI browser command. New tests cover real playback, pause, seeking, muting, completion, native delegation, unsupported-host fallbacks, and malformed time selectors. The two archived expected failures are passing contracts; host-only limitations are documented indocs/media-time-state.md.Rebased as one commit onto the completed selector and benchmark changes. Validation: 585 Node tests, 22 packed-package tests, 20 existing browser tests, 7 media/display browser tests, and 58 WPT pages pass. Types, lint, formatting, repository checks, and coverage thresholds pass. Combined coverage: 86.42% statements, 77.72% branches, 85.16% functions, 85.31% lines.