Commit Graph
90 Commits
Author SHA1 Message Date
ldm0 5c5e05561d Split WPT cross tests by responsibility 2026-09-28 13:39:59 +08:00
ldm0 2434b54320 chore(wpt): refresh cases after initial layout changes
Run the full all profile on Moli d40181f729 and WPT db95fafd1f with 50 CDP workers. All 13,558 cases completed: 9,494 pass, 3,744 fail, 255 timeout, 50 harness-stalled, 14 error, and 1 crash. Compared with the prior lists, 443 gained pass and 39 lost pass.
2026-09-27 01:43:26 +08:00
ldm0 5f81919a42 chore(wpt): refresh full case lists
Record the complete profile-all run on aebba34fb5: 13,558 cases, 9,090 passing. Keep this baseline separate from the subsequent screenshot fallback fix.
2026-09-27 01:43:26 +08:00
ldm0 c33b821fbd chore(wpt): refresh full case lists after regression fixes 2026-09-26 19:54:57 +08:00
ldm0 e401b64d28 fix(wpt): preserve explicit fixture cache controls 2026-09-26 19:54:33 +08:00
ldm0 123e1c36e8 chore(wpt): update wpt cases 2026-09-26 07:11:39 +08:00
ldm0 2cbb2500bf test(wpt): refresh full Moli case status lists
Refresh the all-profile run covering 13,525 cases, including 13 newly selected variants. Record 9,458 passes, 3,738 failures, 264 timeouts, 52 stalled harnesses, 12 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-25 03:03:07 +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 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 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 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 ca5a66beae test(wpt): serve fixture directory listings 2026-09-22 21:55:02 +08:00
ldm0 1f635fa30d test(wpt): substitute request headers with template escaping 2026-09-22 12:54:16 +08:00
ldm0 70b62b7fc6 test(wpt): refresh full Moli case status lists 2026-09-21 22:22:05 +08:00
ldm0 b98e48013b test(wpt): serve programmed navigation responses
Port the second-visit 204, 205 and download fixture from 3ea0668492 onto main. Keep request state isolated by resource path while sharing it across origins, and only admit the supported resource during case discovery.

Validation: 6 navigation fixture tests and all 564 moli-benchmark tests passed.
2026-09-21 16:44:20 +08:00
ldm0 11f8e9668b fix(wpt): run crashtests with their readiness protocol 2026-09-20 17:22:49 +08:00
ldm0 56cd4ddd1a fix(wpt): serve Fetch Range streaming fixtures
Serve the upstream long WAV and range stash resources with streaming writes, byte-range metadata, cancellation and exact path discovery. Cover custom methods, duplicate headers, stash isolation and shutdown.
2026-09-19 00:22:39 +08:00
ldm0 8b09e71d15 fix(wpt): serve as-is fixtures as raw HTTP responses
Write .asis fixtures directly to the connection, preserving raw status lines, duplicate framing fields and malformed bytes. Bypass generated headers, pipelines, substitutions and HEAD body suppression as upstream wptserve does.
2026-09-19 00:11:55 +08:00
ldm0 3e2d2251b5 fix(wpt): serve empty Location redirect fixtures
Serve redirect-empty-location.py with a present empty Location header, fixed 302 status and no CORS grants. Respond before unused uploads complete and recognize only the supported resource references.
2026-09-18 16:43:51 +08:00
ldm0 b1c012951c fix(layout): stabilize table layout and cache measurements
Index each row's cell range and row-group boundary to remove repeated
placement scans. Cache complete table measurement outputs, including
baselines, in an eight-entry LRU with layout cache invalidation.

Preserve caption minima, Flex table heights, percentage padding bases,
anonymous table behavior and the existing vertical layout path. Extend
the Chromium geometry fixtures and refresh the full WPT-cross case lists.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 18180 passed, 13 skipped
- WPT-cross all: 8779/12906 passed; table: 535/716 passed
- Table results unchanged by index/cache optimization; 28 full-run
  differences checked twice per binary with no stable new regression
2026-09-18 16:19:13 +08:00
ldm0 f082f8a95b fix(wpt): serve XHR request header fixtures
Serve raw XHR header inspection and echo endpoints with exact name/value filters, original ordering and duplicate fields. Reuse arbitrary-method routing and return early without reading unused uploads; cover CORS metadata, HEAD and discovery boundaries.
2026-09-17 20:39:27 +08:00
ldm0 005751612c fix(wpt): serve JSON module lifecycle fixtures
Serve JSON module load/error dependencies and the per-key JSON-to-JavaScript response sequence. Keep counters shared across fixture origins and isolated between servers, with exact resource discovery and HEAD behavior.
2026-09-17 20:38:34 +08:00
ldm0 c49d1b72ba fix(events): preserve detached Window receiver identity
Use the native Window brand to recognize child globals across method realms. Distinguish valid detached child Windows from invalid receivers when adding or removing event listeners; detachment has already cleared their event state.

Cover retained child references, borrowed EventTarget methods, invalid receivers, and parent listener isolation. Restore the verified iframe promise-rejection WPT to the passed list.
2026-09-17 14:17:33 +08:00
ldm0 f645752894 fix(parser): notify mutations when coalescing text
Return text mutation effects from parser sinks and deliver them through the shared notification pipeline after releasing the structural borrow. This keeps stylesheets and layout current when parser input is merged into existing text nodes, and delivers characterData records without replacing node identity.

Add main-document and iframe regressions for split stylesheet input, hit testing, and MutationObserver delivery. Restore the verified elementsFromPoint iframe WPT to the passed list.
2026-09-17 14:17:33 +08:00
ldm0 9ece52011c test(wpt): refresh full cross-engine case results
Record the full 12,905-case run at 4f7c4ffc0: 8,766 passed, 3,792 failed, 285 timed out, 53 stalled, and 9 errors. Preserve the measured full-run classifications, including the two independently confirmed stable regressions.
2026-09-17 02:59:17 +08:00
ldm0 3913375f4b fix(wpt): serve the XHR CORS echo fixture
Serve the upstream CORS echo endpoint for standard and custom methods, including original query/body metadata, repeated allow-headers fields, delay errors, HEAD, and exact resource discovery.

Source: 9b27c82fb5
2026-09-17 02:59:00 +08:00
ldm0 d503f0bea3 Update wpt cases 2026-09-16 21:16:07 +08:00
ldm0 65616592dc fix(wpt): serve XHR response status and last-modified fixtures
Preserve status text, raw payloads, method headers, XML contents and file modification times for the two upstream XHR fixtures. Support HEAD and custom methods and close responses without waiting for unused uploads.

Source: 3d04d737e7
2026-09-16 16:23:53 +08:00
ldm0 fea71c0f3d refactor(wpt): isolate script load fixture discovery helper
Keep the script load/error discovery helper and its hook separate from the XHR response fixture additions so both independent branches can merge without overlapping insertions.
2026-09-16 14:30:40 +08:00
ldm0 3028654817 fix(wpt): serve script load and error fixtures
Serve the script load/error endpoint as JavaScript with its requested 200 or 404 response and first query value. Recognize exact relative and absolute fixture references for classic and module script discovery.

Source: fdc7857483
2026-09-16 14:30:40 +08:00
ldm0 6e505565f2 test(wpt): refresh full cross-run baseline 2026-09-16 05:45:10 +08:00
ldm0 e3ae7c3bd1 fix(wpt): serve script charset fixtures as original bytes
Serve the upstream script Content-Type endpoint with original file bytes and the requested MIME value, including HEAD and empty MIME. Resolve exact relative handler references during case selection.

Source: 9e40fe628e
2026-09-16 02:43:23 +08:00
ldm0 569a74f520 fix(wpt): match the wptserve header count limit
Accept the 253-header WPT fixtures using the same bounded 512-header limit as wptserve. Exercise both request and response parsing while retaining count and line-length rejection.

Source: 8aa635acc5
2026-09-15 13:11:01 +08:00
ldm0 a51edfb60a fix(wpt): count link stylesheet fixture requests
Serve the dynamic stylesheet counter and consume counts when queried. Share counts across fixture ports while isolating them from Fetch stash entries. Cover HEAD requests, per-ID separation, and read-and-clear behavior.

Source: 79a997c10d
2026-09-15 13:08:47 +08:00
ldm0 869b7449dd test(wpt): refresh full case lists after htm discovery
Run the complete all profile against Moli 1a12ee01e and WPT db95fafd1
using the release binary, CDP mode, and 50 parallel workers.

The 12,874 cases include 206 newly discovered cases: 165 pass, 37 fail,
and 4 time out. Overall: 8,729 pass, 3,800 fail, 283 timeout,
53 harness-stalled, 9 error, and no crashes or missing cases.

Preserve the full run classifications, including 12 existing cases that
became passing and 6 previously passing cases that did not pass this run.

Validation: full run completed in 727.89 seconds; all case lists match
the result matrix exactly, with no duplicates or omitted cases.
2026-09-14 07:19:47 +08:00
ldm0 1a12ee01ec fix(wpt): discover htm testharness documents 2026-09-14 06:50:58 +08:00
ldm0 6c64713043 fix(benchmark): drain WPT engine logs while running 2026-09-14 05:54:04 +08:00
ldm0 8562d5ae76 test(wpt): refresh full cross-engine case lists after SRI fixes
Refresh the all profile on 59e1af954 against WPT db95fafd1 using CDP, 50 workers, and an 800x600 viewport at DPR 1.

Record all 12,668 cases: 8,558 pass, 3,760 fail, 284 timeout, 52 harness-stalled, and 14 error; no crashes or missing cases. Compared with the previous lists, 36 cases became passing and 8 became non-passing.

Preserve the full-run observations. In two focused runs at parallelism 8 and one serial run, seven of the eight previously passing cases passed each time. The CSP javascript URL inheritance case failed all three rechecks because the expected report was absent; its underlying cause remains undiagnosed.
2026-09-13 04:46:51 +08:00
ldm0 3a9acf2e19 test(wpt): refresh full cross-engine case lists
Refresh the all profile on a33217690 against WPT db95fafd1, using CDP,
50 workers, and an 800x600 viewport at DPR 1.

Record all 12,668 cases: 8,530 pass, 3,783 fail, 295 timeout,
50 harness-stalled, and 10 error; no crashes or missing cases.

Include fetch/api/abort/destroyed-context.html and resolve three iframe
cases previously listed under both pass and error. Preserve the full-run
observations, including 16 cases that changed from pass to fail.
2026-09-11 18:32:44 +08:00
ldm0 5b5015df6f fix(wpt): model Fetch status, trickle and abort fixtures
Source-commit: d60753677c
Source-commit: aec5df04d9
Source-commit: d5919885a4
2026-09-11 12:12:08 +08:00
ldm0 9e668c97e1 feat(compression): support Brotli streams with brotli2
Use the safe brotli2 streaming API. Preserve staged output, backpressure,
truncation and trailing-data errors, with coverage for Window, Worker,
empty and chunked input, large flush output, and codec reclamation.

Declare fastrand as a test dependency so the large-output regression test
also builds when this change is applied directly on main.

Validation on the independent branch: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast (17215 passed, 13 skipped).
Python benchmark harness: 480 tests passed.

(cherry picked from commit d178f16726)
2026-09-09 01:53:03 +08:00
ldm0 6630605680 test(wpt): include compression streams in the semantic baseline
Include Window and DedicatedWorker compression cases, detach window tests and secure-context IDL wrappers in default enumeration. Preserve explicit global overrides and unsupported-case filters.

Record the complete 36-case compression suite using one release binary from bf8505975 and WPT db95fafd1fcef8428805e41eb5705d444e8c67ce. CLI and CDP agree: 8 pass, 28 fail; 528 subtests pass and all 146 failures are unsupported Brotli. Python harness: 488 tests pass.

(cherry picked from commit 7a817e4f36)
2026-09-09 01:53:03 +08:00
ldm0 e19434dc9d fix(events): expose UIEvent pseudoTarget 2026-09-09 00:40:37 +08:00
ldm0 62b1600967 fix(custom-elements): guard reentrant definitions 2026-09-08 17:28:09 +08:00
ldm0 4c00e6dab6 fix(encoding): honor compatibility XML declarations 2026-09-08 16:17:11 +08:00
ldm0 669173367d fix(fullscreen): remove historical page aliases 2026-09-08 14:57:19 +08:00
ldm0 ebc4c0ea44 fix(window): make WindowProxy prototypes immutable 2026-09-08 14:43:00 +08:00
ldm0 3330e01843 fix(cssom): parse comments in unicode ranges 2026-09-08 14:41:42 +08:00
ldm0 c4f472469e fix(workers): reject extended lifetime mismatch 2026-09-08 14:41:08 +08:00