Commit Graph
1026 Commits
Author SHA1 Message Date
ldm0 0b024cbe7d fix(url): honor base URLs in parsing APIs
Validate supplied base URLs before parsing the input, including absolute inputs. Use the base for same-scheme relative parsing and share the result with URL.canParse so all three parsing APIs agree.

Add regression coverage for invalid bases, same-scheme HTTP/FTP/file inputs, opaque and absent bases, and WebIDL conversion order. Mark url/failure.html passing after CLI and CDP confirmation.

Validation: cargo fmt --all; full workspace clippy with warnings denied; nextest 17593 passed, 13 skipped. URL WPT slice improves from 12/22 to 15/22 passing in both CLI and CDP, with 237 additional passing subtests and no newly failing cases. CDP smoke remains 42/43, with Puppeteer unavailable because node is missing.
2026-09-09 06:59:50 +08:00
ldm0 432796c42c fix(file-input): use native FileList identity and payloads
Accept genuine FileLists across realms and prototype changes, reject spoofed interface values, and validate input receivers before the HTML setter steps. Read selected File metadata from private storage instead of script-visible properties.

Share native input-file access with FormData serialization so overridden input.files, FileList.length, and File metadata getters cannot change the submitted files. Preserve assigned FileList and File identity and create fresh lists in the input realm.

Validation: cargo fmt --all; workspace all-target/all-feature clippy with -D warnings; full nextest 17588 passed, 13 skipped; 87 focused tests passed including four new regressions. The same 17 related WPT cases and 236 subtests pass before and after.

Full CDP smoke: 41/43 groups pass. Upload and file-chooser scenarios now pass; dom-input reaches a separate select_option(ElementHandle) timeout reproduced on both parent and patched binaries. Puppeteer cannot start because node is absent. Artifacts: target/wpt-filelist-input-20260908-ASNKxA/.
2026-09-09 06:59:50 +08:00
ldm0 0b5996d66e fix(history): preserve queued same-document traversal steps
Queue each History back/forward/go delta as its own authorized traversal task and resolve the destination when that task runs. Keep the committed traversal position separate from synchronous history mutations, and use the canonical Window history for isolated-world calls. Preserve Navigation API result-bearing traversal behavior.

Cover consecutive and opposite deltas, initially out-of-range requests, synchronous pushState, canceled and reentrant traversals, child documents, and isolated worlds. Update old coalescing assertions and wait for actual browser-owned history commits in protocol tests.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (17584 passed, 13 skipped). Overlapping navigation WPT improves from 16/22 to 18/22, with both new cases passing all 8 subtests. Navigation API comparison preserves all 385 previously passing cases out of 432.

CDP smoke: 41/43 passed. The dom-input FileList upload failure reproduces on the parent binary; puppeteer could not start because Node is missing locally. Artifacts: target/wpt-history-traversal-20260908-lcpQpn/{before,confirmed,navigation-after,cdp,cdp-before}.
2026-09-09 06:59:50 +08:00
ldm0 f8a9cf31f6 fix(navigation): defer child Location commits and honor window.stop
Prepare pending child history seeds without mutating the active Location, history state, or NavigationHistoryEntry. Preserve initiator URLs and reserved service worker clients when queuing the deferred commit.

Cancel pending child navigation tasks and invalidate in-flight response ownership without clearing another window navigation. Preserve cross-document history traversals and reject incompatible Window.stop receivers.

Add regression coverage for five navigation entry points, retained document/history identity, sibling and parent isolation, late responses, resumed navigation, and traversal. Align integration assertions with committed URLs and test meta refresh through a real network load.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (17581 passed, 13 skipped). The 22 overlapping-navigation WPT cases improve from 12 to 16 passes with no lost passes; seven focused cases pass again. Move the four reproducibly fixed cases from failed to passed.

An earlier full nextest run hit one empty-output assertion in cli_meta_refresh_shutdown_exits_without_renderer_abort; retained its log. Independent old/new binary probes did not reproduce it, and the complete rerun passed without changing or skipping that test. Artifacts: target/wpt-window-stop-20260908-XbyH6Q.

Additional paired release validation: all 385 previously passing Navigation API cases remain passing out of 432. Two existing incomplete cases exchange timeout/harness-stalled classification; all other statuses, subtest counts and failure names are unchanged. Release SHA256: 11d9e1bf1faa64b07538c5f7ed93e7d04a6761d10d4d591433480a614df8a293.
2026-09-09 06:59:50 +08:00
ldm0 645cd7cf0c test(wpt): refresh full baseline after web API fixes
Run the complete all profile in CDP mode with 50 workers at 800x600 DPR 1. Source: 3ca9eda2e71b96e98915a392b878eab72a30ef86; WPT: db95fafd1fcef8428805e41eb5705d444e8c67ce.

12,631 cases: 8,982 pass, 3,324 fail, 265 timeout, 54 harness-stalled, 6 error. The case set and fixed run schedule match the previous all-profile baseline.

Preserve exact full-run classifications. Re-ran all 33 pass-status changes twice: 17 newly passing cases stayed passing; 8 formerly passing cases failed all three runs. Other differences include reproducible run-scope/timing sensitivity, so the net gain of 7 is not a count of newly fixed tests.

Artifacts: target/wpt-full-3ca9eda2e-20260908-NMJR82/{report-all,drift-a,drift-b}. Binary SHA256: a5cf5593bbaff4bb22d42f96ca5c2a3c3aa55d91a96249a2a9a95fa12a8330c0. The legacy version probe uses an unsupported subcommand; the binary was separately verified with --version as moli 1.1.3.
2026-09-09 06:59:50 +08:00
ldm0 c863a5989c feat(webrtc): implement ICE and data channel event constructors 2026-09-09 06:59:50 +08:00
ldm0 293755c9f7 feat(webrtc): implement RTCSessionDescription data model 2026-09-09 06:52:52 +08:00
ldm0 3fd12f80b7 fix(events): suppress reentrant rejectionhandled events 2026-09-09 06:52:52 +08:00
ldm0 814e3438c5 fix(clipboard): align clipboard event interfaces 2026-09-09 06:52:52 +08:00
ldm0 15ce46f3ea fix(inner-text): refresh layout during parser scripts 2026-09-09 06:52:52 +08:00
ldm0 5cbd824f60 fix(xhr): resolve open URLs with credentials 2026-09-09 06:52:52 +08:00
ldm0 ac54e62406 fix(service-worker): validate registration URL arguments 2026-09-09 06:52:52 +08:00
ldm0 1f4ace1464 test(wpt): mark immutable service worker passing 2026-09-09 06:52:51 +08:00
ldm0 6ba87512b6 fix(service-worker): make global prototype chain immutable 2026-09-09 06:52:51 +08:00
ldm0 10e90f0269 test(wpt): mark sandboxed iframe fetch passing 2026-09-09 06:52:51 +08:00
ldm0 a0965fdff7 fix(fetch): honor sandboxed opaque request origins 2026-09-09 06:52:51 +08:00
ldm0 c37568518c test(wpt): mark insecure geolocation passing 2026-09-09 06:52:51 +08:00
ldm0 7efd03e8bd test(wpt): mark cross-origin script errors passing 2026-09-09 06:52:23 +08:00
ldm0 5e15013167 fix(script): mute cross-origin classic script errors 2026-09-09 06:52:23 +08:00
ldm0 1e3c98b072 test(wpt): refresh meta refresh timeout status 2026-09-09 06:52:23 +08:00
ldm0 0e9acb4eb7 test(wpt): mark window indexed writes passing 2026-09-09 06:52:23 +08:00
ldm0 f66a4e7c54 fix(window): reject indexed writes and definitions 2026-09-09 06:52:23 +08:00
ldm0 f78ea0b74e test(wpt): mark live window index deletion passing 2026-09-09 06:52:23 +08:00
ldm0 43e1cb249e fix(window): reject deleting live indexed children 2026-09-09 06:52:23 +08:00
ldm0 3c8d7e31c9 test(wpt): mark child meta refresh referrer passing 2026-09-09 06:52:23 +08:00
ldm0 56b8018772 fix(refresh): use child document as navigation referrer 2026-09-09 06:52:23 +08:00
ldm0 0fe1b757f3 test(wpt): refresh cross-engine case lists 2026-09-09 06:52:23 +08:00
ldm0 fd793ba4cc test(wpt): mark same-document refresh passing 2026-09-09 06:52:23 +08:00
ldm0 c211ccae74 test(wpt): substitute request headers in fixtures 2026-09-09 06:52:22 +08:00
ldm0 63e3f97883 test(wpt): mark about:blank child navigation passing 2026-09-09 06:52:22 +08:00
ldm0 0bbfa79854 fix(iframe): apply referrer policy to about:blank navigation 2026-09-09 06:52:22 +08:00
ldm0 fe2d297641 test(wpt): refresh cross-engine case lists 2026-09-09 06:52:22 +08:00
ldm0 56a1d5612f test(wpt): mark child function navigation passing 2026-09-09 06:52:22 +08:00
ldm0 1df272f80c fix(location): use executing document as navigation referrer 2026-09-09 06:52:22 +08:00
ldm0 6f460c13a2 test(wpt): refresh cross-engine case lists 2026-09-09 06:52:22 +08:00
ldm0 20f7b79f91 test(wpt): mark javascript URL reload passing 2026-09-09 06:52:22 +08:00
ldm0 1144c963f9 test(wpt): mark child target name cases passing 2026-09-09 06:52:22 +08:00
ldm0 ba8a9d8375 test(wpt): mark location protocol cases passing 2026-09-09 06:52:22 +08:00
ldm0 61c846f4dd fix(location): apply protocol setter scheme rules 2026-09-09 06:52:22 +08:00
ldm0 82e71324de test(wpt): refresh cross-engine case lists 2026-09-09 06:52:22 +08:00
ldm0 54af75784c fix(history): enforce document URL rewrite rules 2026-09-09 06:52:22 +08:00
ldm0 6ad9dd66f8 test(wpt): refresh cross-engine case lists 2026-09-09 06:52:22 +08:00
ldm0 fd9754d3b5 fix(history): count child pushes in joint session history 2026-09-09 06:52:22 +08:00
ldm0 780dbab4bd test(wpt): mark initial child history cases passing 2026-09-09 06:52:22 +08:00
ldm0 8b0f950f7b fix(history): preserve joint length for initial child documents 2026-09-09 06:52:22 +08:00
ldm0 91edfe87a0 test(wpt): mark initial about blank cases passing 2026-09-09 06:52:22 +08:00
ldm0 8ac9f1624b fix(iframe): reuse initial document for about blank variants 2026-09-09 06:52:22 +08:00
ldm0 a16f8b5778 test(wpt): mark trusted history events passing 2026-09-09 06:52:22 +08:00
ldm0 60cd2522ed fix(events): construct trusted history event subclasses 2026-09-09 06:52:22 +08:00
ldm0 baaa6a9bf6 test(wpt): refresh cross-engine case lists 2026-09-09 06:52:22 +08:00