Commit Graph
1111 Commits
Author SHA1 Message Date
lanyue-llk a825e2e079 fix(fetch): close content audit regressions 2026-09-28 11:48:37 +08:00
lanyue-llk 0b4c17664b fix(fetch): preserve interactive document semantics 2026-09-26 22:51:09 +08:00
lanyue-llk 923999da47 test(fetch): align markdown regressions with preserved semantics 2026-09-25 00:20:12 +08:00
lanyue-llk 39169d7059 fix(renderer): retain content behind loading veils 2026-09-24 23:32:02 +08:00
lanyue-llk 84da69d1d7 fix(fetch): preserve rendered document content 2026-09-24 23:08:40 +08:00
ldm0 5ab69e4aac fix(wpt): honor DOMException assertion constructors and realms 2026-09-24 20:22:08 +08:00
ldm0 c822f282d2 fix(css): share FontFace descriptor conversion and parsing 2026-09-24 20:18:52 +08:00
ldm0 833cdbc558 ci: include WebMainBench in the PR regression report
Add completion, failure, panic, crash, and timeout counts to the existing aggregate PR comment. Validate summary counts, bound failure details, and keep missing or incomplete evidence visible with a link to the source run.
2026-09-24 19:22:52 +08:00
ldm0 7ce34e9e8d ci: gate fetch stability with WebMainBench
Replay the pinned 545-page corpus over loopback-only HTTPS with a 45-second page deadline. Reject unexpected errors, panics, timeouts, and empty output, while retaining per-page diagnostics and the exact known redirect exception.
2026-09-24 19:22:52 +08:00
ldm0 cd0c82e5ba refactor(renderer): centralize pending parser blocking work
Keep main-driver and document.write blockers in one Document-owned slot.
Claim pending work before executing JavaScript so reentrant writes can
install a successor without cleanup from the outer execution removing it.

Use one readiness gate for inserted-source and stylesheet completion, carry
continuations behind new blockers, and discard retired document or driver
work. Cover both resource completion orders, nested writes and main-resource
failure.
2026-09-24 19:22:52 +08:00
ldm0 60b9a8523e test(parser): cover deferred mutation interruption boundaries
Document the deferred flag as an undelivered callback notification. Cover
one-shot interruption across text, character references, comments and input
chunks, plus EOF with an incomplete character reference.
2026-09-24 19:22:52 +08:00
lanyue-llk be0f01871a fix(renderer): avoid stale document.write stylesheet suspension 2026-09-24 19:22:52 +08:00
ldm0 d3b336740c refactor(renderer): record parser suspension resume ownership
Keep the continuation owner in each parser suspension, so scheduler routing
does not infer it from document.write pending work. Require matching
ownership when consuming resume permits and cover both stylesheet paths
with regression tests.
2026-09-24 19:22:52 +08:00
lanyue-llk 06d6a57d72 fix(html2md): omit hidden serialized page state 2026-09-24 19:22:52 +08:00
lanyue-llk 255c083be4 fix(renderer): resume stylesheet-blocked document.write scripts 2026-09-24 19:22:52 +08:00
lanyue-llk 9abac5771d fix(parser): preserve pauses across mutation callbacks 2026-09-24 19:22:52 +08:00
ldm0 9916039eb8 fix(dom): create AbortSignals with intrinsic factories and typed arguments 2026-09-24 16:44:14 +08:00
ldm0 ad757730ba fix(style): invalidate validity containers on child changes 2026-09-24 15:38:15 +08:00
ldm0 06018f4983 fix(cssom): share EventTarget bindings for MediaQueryList 2026-09-24 15:37:10 +08:00
ldm0 94186f6bb6 fix(events): unify object-valued simple event handlers 2026-09-24 15:35:12 +08:00
ldm0 1ebdb981fe fix(workers): share intrinsic bootstrap error events 2026-09-24 15:30:24 +08:00
ldm0 f5a934c033 fix(service-worker): use shared WebIDL promise bindings 2026-09-24 15:29:15 +08:00
ldm0 cc1c030e3f fix(forms): use native FileList data for inputs and FormData 2026-09-24 15:28:05 +08:00
ldm0 f591863281 fix(webidl): unify EventListener argument conversion 2026-09-24 15:24:35 +08:00
ldm0 260ed11c21 fix(url): share component parsing between URL and hyperlinks 2026-09-24 14:45:09 +08:00
ldm0 9b2f86bbf3 chore(release): update version to 1.1.10 v1.1.10 2026-09-24 06:14:56 +08:00
ldm0 c3b795bff2 fix(css): use native FontFaceSet bindings and shared EventTarget 2026-09-24 06:10:05 +08:00
ldm0 cecd00f3c1 fix(wpt): serve XHR body and encoded document fixtures
Model XHR binary body and Content-Type echo responses plus six encoded document resources. Preserve raw request metadata and encoding bytes, avoid waiting for unused uploads, and discover only supported resource references. Match upstream cache and absent-body response headers.

Validation: 584 Python tests passed with 32 workers; 270 HTTP responses matched official wptserve for status, body, and 15 response fields. New regression tests fail on the unmodified main baseline.

Source-commit: 5389231812
2026-09-24 05:02:24 +08:00
ldm0 72bc7cbef7 fix(forms): validate setRangeText offsets before clamping 2026-09-24 03:14:00 +08:00
ldm0 987b09ca13 fix(history): isolate traversal info to initiating navigation 2026-09-24 02:39:25 +08:00
ldm0 7e40b17284 refactor(history): extract pure session history state machine 2026-09-24 02:39:25 +08:00
ldm0 f8f46bf488 fix(history): coordinate complete joint traversal plans 2026-09-24 02:39:25 +08:00
ldm0 59ad7921a8 ci: use TUNA mirrors and extend release build timeouts
Install Debian build dependencies from TUNA mirrors in the three self-hosted jobs and allow both release builds to run for up to 180 minutes.
2026-09-24 01:05:00 +08:00
ldm0 1933cec74f refactor(input): centralize editing and native element clicks 2026-09-23 23:06:17 +08:00
ldm0 f0a31d85ed fix(input): dispatch InputEvent metadata for text edits
Dispatch trusted beforeinput and input events with operation-specific
inputType and data for text controls and contenteditable editing. Keep
beforeinput cancelable and report input.data after text normalization
and maxlength truncation.

Cover keyboard and CDP insertion, cancellation, deletion, and textarea
line breaks with 57 regression scenarios.
2026-09-23 23:06:17 +08:00
ldm0 4d10ff1916 fix(input): preserve Enter cancellation and multi-character text
Dispatch a cancelable insertLineBreak beforeinput before implicit form
submission, including default submit button activation. Require a standalone
CR when inferring Enter from character text.

Cover combined keydown, standalone char, and embedded-CR input so text is
preserved without accidental submission.

Temporarily ignore the two Chromium-verified iframe overlay click tests
pending separate implementation fixes.
2026-09-23 23:06:17 +08:00
lanyue-llk 7bf36c9823 fix(input): preserve activation and navigation boundaries 2026-09-23 23:06:17 +08:00
ldm0 36ae738e6f fix(parser): preserve stylesheet pauses across encoding notices 2026-09-23 22:34:09 +08:00
ldm0 261b4f3052 test: fix macOS workspace test failures 2026-09-23 22:24:26 +08:00
ldm0 8c2956908b refactor(fetch): preserve typed request preparation errors 2026-09-23 20:51:08 +08:00
ldm0 eb3e9b772b refactor(fetch): preserve typed argument conversion errors
Carry WebIdlError and structured fetch validation errors through Window and
Worker argument conversion, formatting them only at the rejection boundary.
Propagate Proxy.has exceptions before further conversion or body consumption,
and cover exception identity, validation messages, realms, and side effects.

Fix existing XHR response-document header type mismatches in the parser and
its regression fixture so the workspace builds with byte-valued headers.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (18490 passed, 14 skipped)
2026-09-23 20:51:08 +08:00
ldm0 ebc016ace3 fix(wpt): serve the common HTML echo fixture
Serve common/echo.py as HTML with byte-preserving first query values, all-method handling, and ordered response pipes. Recognize exact relative and absolute references during case discovery.

Validation: 582 Python tests passed with 32 workers; 144 HTTP responses matched official wptserve for status, body, and 15 response fields. New regression tests fail on the unmodified main baseline.

Source-commit: 4042e1a11a
2026-09-23 20:42:52 +08:00
ldm0 1418e3aa35 refactor(history): centralize joint session history state
Per-Window length counters cannot shrink after traversal and branching, and
leave retained sibling History objects stale. Give each traversable one
ordered history and cursor with stable step, browsing context, and Document
identities. All History getters read that state; Navigation entries remain
Document views.

Route push, replace, traversal, and pruning through the shared model. Carry
browser positions or renderer snapshots into new Documents and publish
committed mutations through the Page owner-action FIFO. Remove cached length
adjustments and DOM-order traversal guesses. Preserve srcdoc identity when
only its parent's URL changes.

Keep reset callback pushes in both renderer and browser history, and prune
discarded sibling Navigation entries when forward steps are removed.

Validation: cargo fmt --all; workspace all-targets/all-features Clippy with
warnings denied; cargo nextest run --no-fail-fast (18,501 passed, 14 skipped);
12 targeted Chromium/Moli state and length comparisons; frontend differential
1,020/1,020 matches, all 5,259 observed frames matching, with zero retries.
2026-09-23 20:39:06 +08:00
ldm0 f013d6db75 fix(history): preserve browser session length across child pushes
Seed newly committed renderer documents with the browser-owned session-history
length before author scripts run. Keep navigation, reload, and traversal from
losing prior entries that the Navigation API does not expose.

Grow joint history by newly appended entries, preserving existing parent steps
when a child pushes history and avoiding an extra step when replacing forward
history after back. Add protocol and renderer regression coverage.
2026-09-23 20:39:06 +08:00
ldm0 7540d64247 fix: restore XHR build and gate websocket test helper 2026-09-23 19:10:46 +08:00
ldm0 99fd6ad7c8 chore(deps): update Stylo lockfile revision 2026-09-23 17:40:55 +08:00
ldm0 c560d8fcfb fix(cssom): use native Stylo content alternative counters 2026-09-23 17:40:55 +08:00
ldm0 bc64742a6e fix(fetch): preserve RequestInit conversion exceptions 2026-09-23 17:02:09 +08:00
ldm0 8914678698 fix(xhr): preserve response document modification times 2026-09-23 16:14:28 +08:00
ldm0 3f8ce8a940 fix(history): use document lifecycle for initial blank replacement 2026-09-23 16:11:02 +08:00