Commit Graph
1095 Commits
Author SHA1 Message Date
ldm0 bc5569f537 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:11:55 +08:00
ldm0 b9c66eec06 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:11:55 +08:00
ldm0 96777bc518 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:11:55 +08:00
ldm0 3e5664746b 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:11:55 +08:00
lanyue-llk c9a6b06e69 fix(renderer): avoid stale document.write stylesheet suspension 2026-09-24 19:11:55 +08:00
ldm0 d96a96ad55 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:11:55 +08:00
lanyue-llk b003763a4b fix(html2md): omit hidden serialized page state 2026-09-24 19:11:55 +08:00
lanyue-llk c6fbfe5bc8 fix(renderer): resume stylesheet-blocked document.write scripts 2026-09-24 19:11:55 +08:00
lanyue-llk 68bcf99e78 fix(parser): preserve pauses across mutation callbacks 2026-09-24 19:11:55 +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
ldm0 71c46d6606 test(tls): install macOS trust fixture in system keychain 2026-09-23 14:07:31 +08:00
ldm0 2d5b88b3dc fix(tls): use Apple SecTrust by default on macOS
Pin the curl-rust build that enables libcurl's Apple SecTrust verifier
with the existing AWS-LC TLS backend. Leave default CA options unset
so macOS trust comes from the operating system rather than an
automatically discovered certificate file.

Preserve explicit CA files and certificate environment overrides for
origins and HTTPS proxies, including explicit-file precedence over
SSL_CERT_DIR. Keep other platforms' existing trust configuration.

Add macos-latest CI coverage for local HTTPS, WSS, and
HTTPS proxy handshakes, including native-verifier diagnostics,
rejected certificates and hostnames, and CA overrides.

Use distinct CA and server identities, blocking accepted sockets, and
bounded fixture commands. Exercise the generated chains, nonblocking
socket transition, and process deadlines in portable regression tests.

Validated on Linux with cargo fmt --all, workspace Clippy with all
targets and features, and cargo nextest run --no-fail-fast:
18447 passed, 14 skipped. macOS-specific checks run in CI.

Refs #701
2026-09-23 14:07:31 +08:00
ldm0 33672a12ea fix(fetch): include underlying curl errors in failure reports
Preserve the full error chain in network failure reasons and the CLI fallback so curl error codes and detailed TLS, DNS, and connection failures remain visible. Keep the concise two-line CLI presentation and typed readiness timeout handling.

Test TLS failures across all fetch transports, network error classifications, and CLI connection failures. Validated with cargo fmt --all, workspace Clippy with all targets and features, and cargo nextest run --no-fail-fast (18444 passed).

Refs #701
2026-09-23 14:07:31 +08:00
ldm0 fe896d8cf7 fix(indexeddb): use intrinsic templates for factory creation 2026-09-23 14:03:57 +08:00
ldm0 e79c5b6451 fix(selectors): resolve textarea direction from its current value 2026-09-23 04:50:15 +08:00
Donough Liu 99b1790682 fix(events): share MessagePort EventTarget dispatch (#768) 2026-09-23 04:46:02 +08:00
Donough Liu 13a1d7d15f refactor(navigation): share interception settlement lifecycle (#770) 2026-09-23 04:44:44 +08:00
Donough Liu 04ac476e66 fix(events): share AbortSignal EventTarget dispatch (#769) 2026-09-23 04:44:38 +08:00
Donough Liu fe28a946e4 fix(indexeddb): snapshot queued queries and support range deletion (#767) 2026-09-23 04:44:31 +08:00
Donough Liu 80d4d8613f fix(scripts): execute child inline classics synchronously (#766) 2026-09-23 04:44:24 +08:00
Donough Liu 747559e0a1 fix(dom): synchronize element reflection targets (#764) 2026-09-23 04:44:00 +08:00
Donough Liu 7eb6444394 fix(history): preserve joint length for initial child documents (#763) 2026-09-23 04:43:54 +08:00
Donough Liu d637221990 fix(dom): expose live HTMLCollections on every Document (#762) 2026-09-23 04:43:47 +08:00
ldm0 b727ba58ef test(wpt): refresh full cross-engine case lists
Refresh status lists from the all-profile Moli run covering 13,512 cases. Record 9,408 passes, 3,747 failures, 293 timeouts, 52 stalled harnesses, 11 errors, and 1 crash.

Validation: full wpt-cross run completed; all case lists match the result matrix with no missing cases; git diff --check passed.
2026-09-23 04:38:35 +08:00
ldm0 84157b28a6 fix(events): dispatch host events through native node dispatch 2026-09-23 04:26:28 +08:00
ldm0 594cb9041c fix(dom): make native document content type authoritative 2026-09-23 02:24:21 +08:00