Commit Graph
922 Commits
Author SHA1 Message Date
ldm0 c732fbcd7d fix(trusted-types): verify attached attribute mutations 2026-09-16 22:02:04 +08:00
ldm0 e721859258 fix(trusted-types): enforce Element attribute sinks 2026-09-16 22:02:04 +08:00
ldm0 c4fe7b01d9 fix(trusted-types): expose policy interface and default 2026-09-16 22:02:04 +08:00
ldm0 10ba1d7698 fix(trusted-types): expose policy factory interface 2026-09-16 22:02:04 +08:00
ldm0 0d03ddc0f6 fix(trusted-types): align policy callback WebIDL semantics 2026-09-16 22:02:04 +08:00
ldm0 3892ad2efc fix(forms): align selectedcontent mutation timing 2026-09-16 22:02:04 +08:00
ldm0 0194733c99 fix(forms): synchronize selectedcontent clones 2026-09-16 22:02:04 +08:00
ldm0 92c397653d fix(forms): unify option disabledness 2026-09-16 22:02:04 +08:00
ldm0 2bc55a0661 fix(forms): implement option nearest select algorithm 2026-09-16 22:02:04 +08:00
ldm0 7f54c78af2 fix(parser): support customizable select content 2026-09-16 22:02:04 +08:00
ldm0 31b30314ef fix(html): update auto directionality after mutations 2026-09-16 22:02:04 +08:00
ldm0 4f3b15b24e fix(dom): implement rendered text setters 2026-09-16 22:02:04 +08:00
ldm0 c25c89b77e fix(events): preserve inline handler ordering 2026-09-16 22:02:04 +08:00
ldm0 47afa3565c fix(directionality): inherit CSS through slots 2026-09-16 22:02:04 +08:00
ldm0 ca01d01d76 fix(aria): resolve element reference attributes 2026-09-16 22:02:04 +08:00
ldm0 a8399cae32 fix(fonts): load string sources on demand 2026-09-16 22:02:04 +08:00
ldm0 c41e2686a6 fix(performance): support User Timing in workers 2026-09-16 22:02:04 +08:00
ldm0 616ea027ec fix(performance): expose constructible PerformanceMark 2026-09-16 22:02:04 +08:00
ldm0 0a5ea9cd5b fix(performance): enforce User Timing boundaries 2026-09-16 22:02:04 +08:00
ldm0 d04979c3fc fix(forms): reset parser-associated form owners 2026-09-16 22:02:04 +08:00
ldm0 3eeb70ed28 test(wpt): refresh counter style symbol baseline 2026-09-16 22:02:04 +08:00
ldm0 66c821c559 test(wpt): refresh counter style speak-as baseline 2026-09-16 22:02:04 +08:00
ldm0 41231b7067 fix(forms): honor button auto type state 2026-09-16 22:02:04 +08:00
ldm0 1331e9cc3f fix(forms): honor range input constraints 2026-09-16 22:02:04 +08:00
ldm0 aae529de0a fix(selectors): honor heading offsets and resets 2026-09-16 22:02:04 +08:00
ldm0 c97965fce6 fix(lifecycle): order defer timers before DOMContentLoaded 2026-09-16 22:02:04 +08:00
ldm0 50f5b63e85 fix(forms): sanitize multiple and IDN email values 2026-09-16 22:02:04 +08:00
ldm0 8793564af9 fix(html): preserve clean input values across type changes 2026-09-16 22:02:04 +08:00
ldm0 8a5f23df19 fix(editing): enforce maxlength for inserted text 2026-09-16 22:02:04 +08:00
ldm0 bd9608c644 fix(dom): preserve surrogate IDs for selector matching 2026-09-16 22:02:04 +08:00
ldm0 aa4c02536a fix(html): expose document named properties 2026-09-16 22:02:04 +08:00
ldm0 4483233461 fix(css): use Stylo for content visibility 2026-09-16 22:02:04 +08:00
ldm0 5ee056e7d4 fix(html): apply hidden until-found styles 2026-09-16 22:02:04 +08:00
ldm0 1a6c6d97f2 fix(html): expose obsolete no-op methods 2026-09-16 22:02:04 +08:00
ldm0 ce9ecc2549 test(wpt): refresh reflection regression baseline 2026-09-16 22:02:04 +08:00
ldm0 c6a365a6c7 fix(renderer): complete section element reflection 2026-09-16 22:01:17 +08:00
ldm0 ba83c29466 fix(renderer): complete tabular element reflection 2026-09-16 22:01:17 +08:00
ldm0 43b63ab366 fix(renderer): complete metadata element reflection 2026-09-16 22:01:16 +08:00
ldm0 ba9f4afd37 fix(parser): preserve strict XML tokenizer errors 2026-09-16 22:01:16 +08:00
ldm0 5bad74c62f refactor(renderer): unify child Window realm state 2026-09-16 22:01:16 +08:00
ldm0 3dcfac5278 fix(parser): preserve reentrant insertion state and reaction order
Flush parser insertion reactions after the tree builder completes its current
token so connected callbacks run before children without retaining parser
borrows across JavaScript execution.

Keep one DocumentParserSession and expose a restricted insertion handle for
nested writes. Share input, suspension, cancellation, and close state so
blocked writes remain queued and outer feeds stop when nested parsing blocks
or replaces the document. Let the owning session finish deferred close and
dispatch readiness transitions once.

Reuse form-owner mutation detection for child parser insertions and add
regressions for reaction order, form association, nested writes, gated external
scripts, document replacement, and deferred close.

Validation: cargo fmt --all; strict workspace Clippy; cargo nextest run
--no-fail-fast (18,104 passed, 13 existing skips); release build.
2026-09-16 21:16:07 +08:00
ldm0 d503f0bea3 Update wpt cases 2026-09-16 21:16:07 +08:00
ldm0 6f5759a0c3 fix(custom-elements): allow pending upgrades in nested reactions
Let an undefined element with a queued upgrade participate in a nested
appendChild() or customElements.upgrade() reaction scope. Use construction
state at execution time to prevent duplicate constructors, and keep failed
upgrade cleanup intact.

Remove pending-upgrade checks from lifecycle enqueueing so a remaining
duplicate upgrade cannot suppress a successful upgrade's form callback.
Drop the unused queue membership helpers.

Add regressions for nested insertion and explicit upgrade, initial form
association, and constructor failure. Correct two fragment parser ordering
assertions after verifying the same scripts against local Chromium 147.

Validation: cargo fmt --all; workspace clippy with all targets and features
and -D warnings; 17,803 nextest tests passed, 13 skipped. All 75 subtests in
the seven affected WPT pages pass. The custom-elements directory passes
163/165 pages, with the same two remaining failures as the prior run.
2026-09-16 21:16:07 +08:00
ldm0 dd650eb96b fix(custom-elements): queue insertion upgrades in tree order
Queue either a connected callback for an existing custom element or an upgrade for an undefined element. Let the upgrade own its initial connection callback instead of synchronously upgrading the subtree and enqueueing connections again.

Cover option and ordinary containers, reconnection, and mixed upgraded/undefined sibling order against Chromium. HTMLOptionElement WPT passes; workspace fmt, clippy, and all 17800 nextest tests pass.
2026-09-16 21:16:07 +08:00
ldm0 1a02d17bf6 fix(custom-elements): integrate child document parser construction
Use the shared custom element construction path in the child realm and deliver parser mutation records and lifecycle reactions. Give child document streams CEReactions scopes so writes finish reactions without premature microtask checkpoints.

Add regressions for synchronous construction, parser mutation batches, nested JavaScript, and dynamic markup guards. The five affected WPT pages pass all 46 subtests; workspace fmt, clippy, and all 17798 nextest tests pass.
2026-09-16 21:16:07 +08:00
ldm0 f3c87f394d fix(fetch): bypass interception for local blob and data URLs 2026-09-16 18:54:13 +08:00
ldm0 0c037567ce fix(webidl): preserve record conversion order 2026-09-16 17:08:44 +08:00
ldm0 b0780fbe0e fix(webidl): retain enumerable symbol record keys 2026-09-16 17:08:44 +08:00
ldm0 e2f23992bb fix(xhr): apply enum attribute rules to responseType
Ignore unknown responseType values after string conversion and before XHR state checks. Preserve conversion exceptions, ignore document in workers, and validate the native receiver in the accessor realm.

Source: db79f4a746
2026-09-16 17:03:04 +08:00
ldm0 18bab6d67b fix(webidl): complete sequence conversion before validating pairs
Propagate WebIDL sequence conversion errors without IteratorClose. Convert all inner sequences before validating URLSearchParams pair lengths or normalizing Headers, preserving getter order and conversion exceptions.

Source: afe693c9a3, 4a420981c3
2026-09-16 17:02:20 +08:00