Commit Graph
1520 Commits
Author SHA1 Message Date
ldm0 2a4829fa4e fix(wpt): stream the Fetch trickle fixture response
Model trickle.py by draining the request body, delaying headers and body
chunks, and writing TEST_TRICKLE lines according to ms/count. Preserve the
optional Content-Type omission and close-delimited response framing.

Exercise supported methods, defaults, duplicate/invalid parameters,
progressive delivery, and both fixed-length and chunked uploads.

Validation: 221 Python tests passed. With the same Moli binary, 16 WPT
cases add two passing cases and eight passing subtests, with no regressions.
No Rust source or build metadata changed.
2026-09-27 07:59:21 +08:00
ldm0 c0a9f9abaa fix(fetch): remove an initial UTF-8 BOM from Body text and JSON
Decode buffered and fetched text/json bodies with UTF-8 BOM removal before
creating strings or invoking the native JSON parser. Remove exactly one
initial BOM, retain replacement behavior for malformed UTF-8, and keep
binary/form consumers unchanged. Borrow valid UTF-8 while materializing.

Cover constructed Request/Response bodies, delayed ReadableStream input,
data URLs, and chunked HTTP in window, child frame, and worker realms.
Include split/repeated BOMs, UTF-16 markers and MIME charset, SyntaxError,
clone ordering, raw bytes, and URL-encoded/multipart form values.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17,946 passed, 13 skipped); 9/9 CLI probes. A 40-case WPT comparison adds
four passing cases and ten passing subtests without regressions.
2026-09-27 07:59:21 +08:00
ldm0 68f3818e19 fix(fetch): preserve and clone Request stream bodies
Retain ReadableStream BodyInit values instead of extracting empty bytes.
Validate stream construction options, tee cloned bodies with independent
chunks, and proxy inherited stream-only bodies while immediately marking
the original disturbed. Use native stream operations for cancellation and
error propagation even when public stream methods are overridden.

Cover consumption, clone isolation, validation, errors, and cancellation in
window, child-frame, and worker realms. The 37-case Fetch WPT comparison
adds four passing cases and six passing subtests without regressions;
public stream tee still passes all 52 subtests.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17,943 passed, 13 skipped); 9/9 CLI regression probes.
2026-09-27 07:59:21 +08:00
ldm0 eb5e58ed73 fix(fetch): return null bodies for HEAD and bodyless statuses
Carry request methods through buffered, streaming, Worker, and navigation
preload response creation. Discard public and filtered internal bodies before
registering streams, so null bodies remain reusable through reads, clones,
and aborts while empty GET responses keep their streams.

Cover real HTTP responses in Window, iframe, and Worker and verify pending
body sources do not retain late chunks or terminal events.

Validation: cargo fmt --all; workspace Clippy with all targets/features and
-D warnings; nextest 17,940 passed, 13 skipped. Focused WPT comparison gained
2 complete cases and 20 subtests across 69 cases with no new failures.
2026-09-27 07:59:21 +08:00
ldm0 7fd69728d5 fix(webapi): reconcile replayed bitmap and Fetch bindings
Use the shared ImageData interface identity during BitmapSource conversion
and remove Fetch interface imports made obsolete by replayed body changes.
Preserve the existing bitmap conversion order.
2026-09-27 07:59:21 +08:00
ldm0 087adb9284 fix(wpt): model Fetch status fixture responses
Serve fetch/api/resources/status.py with upstream status, reason, method
header and byte-preserving query content across supported request methods.
Keep duplicate parameter precedence and explicit empty values intact.

Validate fixture parameters and 32 HTTP status/method combinations. The
focused CLI comparison gains 16 UTF-8 subtests with the same engine binary;
null response bodies and BOM handling remain separate engine defects.
2026-09-27 07:59:21 +08:00
ldm0 f0a8e308ab fix: synchronize Fetch body consumption with stream state
Derive Body usability and bodyUsed from native stream state, preserve reader locks during consumption, and keep null bodies reusable. Reject unusable stream inputs and propagate body conversion failures through their promises.

Use native reader operations without forcing lazy Streams interfaces during bootstrap. Cover buffered and streaming bodies in Window, iframe, and Worker; update null-body expectations and WPT pass lists.
2026-09-27 07:59:21 +08:00
ldm0 cbebb4cfc1 fix: validate RequestInit consistently before fetch abort 2026-09-27 07:59:20 +08:00
ldm0 8f0d27346a fix: construct trusted abort events and reset AbortSignal dispatch state
Worker abort events now use the signal realm's intrinsic Event constructor
and carry the native trust flag, including timeout and stream cancellation.

Share AbortSignal dispatch setup and cleanup between Window and Worker.
Script dispatch validates Event state and clears trust, active redispatch
throws, and completion clears currentTarget, eventPhase, the event path,
and propagation flags. Pre-stopped events skip listeners and remain reusable.

Cover controller, composite, stream and timeout events with overwritten or
missing public constructors, plus synthetic dispatch and native event reuse,
in Window, child frames and dedicated workers.
2026-09-27 07:59:20 +08:00
ldm0 43a6fbcd8c fix: construct native navigation events in their target realm
Use intrinsic constructors in the Navigation or history entry target realm
for navigate, currententrychange, navigatesuccess, navigateerror and dispose.
Create history entries in their owning window even when methods are borrowed
from another window. Preserve native navigate event trust and construct
navigation abort controllers and trusted abort events through intrinsics.

Add three Browser integration tests covering 14 cross-window, joint-history
and cross-document flows, including throwing public constructor getters.
The same fixture matches Chrome in all 14 flows.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17918 passed, 13 skipped). The 334-case WPT comparison gains two passing
cases and two subtests without regressions; passed ledger is 9107.
2026-09-27 07:59:20 +08:00
ldm0 f901594616 fix: replace iframe src history before load completion
Use the active child Document's native complete-load state when choosing
whether iframe src navigation replaces the current history entry. This
covers parser, DOMContentLoaded, load and pageshow callbacks despite an
already complete readyState, while retaining post-load push behavior.

Add Browser coverage for 14 src assignment and setAttribute flows. Update
two existing history expectations for src changes from iframe load
callbacks, independently confirmed with their HTML fixtures in Chrome.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17915 passed, 13 skipped). The 222-case WPT comparison gains three passing
cases and three subtests without regressions; passed ledger is 9105.
2026-09-27 07:59:20 +08:00
ldm0 b856c429be fix: preserve child history traversal lifecycle
Run cross-document child traversal through the shared unload tree after
its root navigation checks, retaining visibility transitions and one
unload lifecycle per retiring document and descendant.

Apply native Window lifecycle events' legacy Document target override
explicitly, and reset trust for script-dispatched events. Add Browser
coverage for native versus synthetic dispatch, nested history/navigation
roundtrips, and same-document traversal.

Validation: cargo fmt --all; workspace Clippy with all targets/features
and -D warnings; nextest (17913 passed, 13 skipped). 213 WPT cases gained
one passing case and two passing subtests with no regressions. Seven
matching Chrome fixture flows passed.
2026-09-27 07:59:20 +08:00
ldm0 e86277ef0f fix: unload descendant documents during frame navigation
Snapshot retiring frame documents and finish their beforeunload phase before
actual unload delivery. Preserve ancestor unload counters through descendant
callbacks and check exact owners before dispatching further events.

Retain visibility state on the native Document and dispatch trusted, bubbling
visibilitychange events through the host event path. Use native unload
counters to suppress navigation during visibility and ancestor callbacks;
cancel each retiring window's timers after its unload.

Eight Browser integration tests cover 50 scenarios. The 181-case WPT
comparison gains two passing cases and seven passing subtests without
regressions; update the passed ledger to 9,101 cases.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17,910 passed, 13 skipped). Rebuilt CLI matches the tested WPT binary.
2026-09-27 07:59:20 +08:00
ldm0 fd33570e45 fix: ignore document stream replacement during unload
Keep a native counter for each unloading Document so open and implicit
write/writeln stream replacement preserve its nodes, listeners and URL.
Scope guards cover nested callbacks and ancestor teardown without blocking
other documents or manually dispatched unload events. Preserve argument
conversion and existing XML/dynamic-markup exception checks.

Add 34 Browser and main-VM regression scenarios. The 154-case WPT comparison
gains one passing case and six passing subtests with no regressions; update
the passed ledger to 9,099 cases.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17,909 passed, 13 skipped). Rebuilt CLI matches the tested WPT binary.
2026-09-27 07:59:20 +08:00
ldm0 2d2149caff fix: unload javascript URL documents without beforeunload
A child javascript URL string result must unload the old document without
checking whether unloading is canceled. Reuse the existing teardown that
dispatches pagehide, visibilitychange, and unload, and cancels old timers.
Apply it to the target and its descendants, capturing document identities
before callbacks can remove or replace them.

Add three Browser integration tests covering 12 scenarios, including
nested frames, unrelated frames, non-string completion, ordinary
navigation, and attempts to navigate or schedule timers during unload.
Record the newly passing javascript-url-no-beforeunload WPT.

Validation: cargo fmt --all; workspace all-targets all-features Clippy
with -D warnings; cargo nextest run --no-fail-fast (17,904 passed,
13 skipped). Focused WPT: 110 cases, one new pass / two passing subtest
gains, no regressions.
2026-09-27 07:59:20 +08:00
ldm0 77c731a232 fix: preserve child navigations started by javascript URLs
Check the navigation load as well as the Document owner before committing
a javascript URL string result. A form submission or Location navigation
started during script execution must keep its pending request.

Add four Browser integration tests covering 13 scenarios, including GET,
POST, named targets, successor javascript URLs, unrelated frames, and
canceled navigation. Record the newly passing jsurl-form-submit WPT.

Validation: cargo fmt --all; workspace all-targets all-features Clippy
with -D warnings; cargo nextest run --no-fail-fast (17,901 passed,
13 skipped). Focused WPT: 103 cases, one new pass, no regressions.
2026-09-27 07:59:20 +08:00
ldm0 0ec0115405 fix(wpt): serve form submission body validation fixture 2026-09-27 07:59:20 +08:00
ldm0 a8dc9515e1 fix(forms): preserve submission-time navigation history 2026-09-27 07:59:20 +08:00
ldm0 5922acbf75 fix(navigation): replace Location entries until document loading completes
Track complete loading separately from readyState for main and child documents, retaining the state through document.open(). Apply before-load replacement to Location assignments with the transient user activation exception, and settle inherited main load completion after a load-callback rewrite.

Keep Window.open on the generic navigation path so its history behavior remains independent of the Location API.

Cover real child history length and entry indices across parser, DOMContentLoaded, load, pageshow, and post-load document.open(), plus main navigation event classification and activation. Update the measured Location WPT results.
2026-09-27 07:59:20 +08:00
ldm0 679a473e57 fix(history): skip replaced initial child entries during joint back traversal
Initial child placeholders share a navigation index with the first committed entry and must not consume a joint-history step. Continue to the child with a real predecessor while preserving deliberately visited about:blank entries.

Cover fresh child insertion, explicit location.replace(), and a real about:blank predecessor through Browser integration tests.
2026-09-27 07:59:20 +08:00
ldm0 8ebd8719a4 fix(html): retain child parser EOF during script execution 2026-09-27 07:59:20 +08:00
ldm0 addd622d64 fix(script): keep parser async work runnable after EOF
Async scripts still fetching at parser EOF previously entered a queue
behind DOMContentLoaded, allowing a slow defer script to block a ready
async script or its error event. Transfer remaining async work to the
exact Document runtime producer and publish each task when its source
completes, retaining its load-delay lease.

Preserve observed async completion order across parser handoff. Add gated
success, failure, and out-of-order completion tests, and update the WPT
ledger for execution-timing/085.html.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17,879 passed, 13 skipped
- 270 WPT cases: 257 to 258 passes, no case or subtest regressions
2026-09-27 07:59:20 +08:00
ldm0 7b95a43168 fix(html): queue child load delivery through the DOM source
Queue iframe load delivery alongside other DOM tasks and include current
child lifecycle owners in the existing lifecycle scheduling preference.
This keeps initial load ahead of module timers that replace the document.

Cover inline, imported, external, and top-level-await modules using parent
and child timers. Check adopted-image events against the shared DOM FIFO.
Update the WPT ledgers for the three repaired delayed module-write cases.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17,875 passed, 13 skipped
- 270 WPT cases: 254 to 257 passes, no case or subtest regressions
2026-09-27 07:59:20 +08:00
ldm0 5630167b90 fix(html): queue document lifecycle transitions on the DOM source
Admit DOMContentLoaded and main Window load after their parser/defer and load
prerequisites so earlier DOM tasks keep their FIFO positions. Keep interactive
readiness at parser stop, preserve child realm prerequisites, and return a load
boundary to its driver if an earlier DOM callback adds a new load delay.

Queue parser-owned external import-map errors during preparation, including
child and document.write parsers, so later dynamic errors cannot overtake them.
Cover ordering, replacement and load-delay behavior in main and child documents.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17,871 passed, 13 skipped
- 270 WPT cases: 254 pass, 10 fail, 5 timeout, 1 error; one new pass and
  no case-status or passing-subtest-count regressions
2026-09-27 07:59:20 +08:00
ldm0 a6ca5e26d0 fix(canvas): settle ImageBitmap promises through bitmap tasks
Reject Web IDL conversion errors through the returned Promise and decode
raster Blobs from their bytes on the blocking pool. Deliver results through
a dedicated bitmap task source bound to the exact Page and Window realm.

Retain canvas, ImageData and ImageBitmap pixel snapshots for crop, resize,
flip and alpha processing. Clear pixels on close and reject closed sources
in drawImage. Read HTML canvas dimensions from native attributes.

Cover Promise timing, pixels, intrinsic prototypes, child realm retirement,
document.open and real navigation identity collisions with Page task tests.
2026-09-27 07:59:18 +08:00
ldm0 760498528f fix(script): queue dynamic preparation errors at insertion 2026-09-27 07:59:18 +08:00
ldm0 c0b2ddb419 fix(script): queue Window promise rejection notifications as DOM tasks
Promise rejection events were dispatched during microtask checkpoints or
synchronously when a late handler was attached. Queue both events on the
shared DOM-manipulation source, snapshot each realm's notification batch
at the checkpoint, and recheck handlers immediately before notification.

Keep V8 payloads in the originating Host, authorize exact Document owners
through the Page dispatcher, and restore the registered Window realm for
each event. Retire stale payloads and clear retained handles at teardown.

Exercise FIFO order across checkpoints, late handling, realm routing, and
Document replacement through the production selected-task harness. Update
existing notification fixtures and assert that suppressed rejections leave
no notification task queued.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- 254 related WPT cases: all 240 previously passing cases remain passing
- promise-rejection-events.html: 40/43 subtests pass, up from 33/43
- cargo nextest run --no-fail-fast: 17,849 passed, 13 skipped
2026-09-27 07:59:18 +08:00
ldm0 5daa5d2b03 fix(parser): checkpoint microtasks before preparing parser scripts
Yield live HTML script preparation to the document owner after releasing
parser borrows. Prepare from the current DOM after the guarded microtask
checkpoint, and abandon stale handoffs when that checkpoint replaces the
document. Apply the boundary to main documents, child documents, and
document.write; preserve eager parsing when no runtime owner is installed.

Admit parser async classic scripts after preparation and keep nested
script cleanup from draining microtasks while an outer script is running.
Add main/child integration coverage and update the two repaired WPT cases.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17,846 passed, 13 skipped
- 245 related WPT cases: all 231 previously passing cases remain passing
- Final CLI build: both repaired WPT cases pass on the validated sources
2026-09-27 07:59:18 +08:00
ldm0 760c3c21c8 fix(script): checkpoint microtasks during event callback cleanup
Perform HTML script cleanup between event callbacks when the execution-context stack becomes empty, retaining currentTarget, passive state, and window.event through the checkpoint. Preserve script execution scopes during exception reporting, use the same callback boundary for Worker.onerror, and guard the complete microtask checkpoint against reentrancy.

Remove deferred window.event restoration. Update callback-order assertions and asynchronous fixtures to wait for the final event they inspect, while retaining scheduler, document-owner, and follow-up checks. Add Window, child Window, and Worker coverage for nested dispatch, listener removal in microtasks, and script versus callback exceptions.

Callback exception ordering follows Web IDL cleanup before rethrow; the local Chromium probe reports the error before that checkpoint.

WPT: 3 additional passes in the script-element microtask tests; the other 492 cases retain identical statuses and subtest results. Update the corresponding passed/failed case lists.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (17,843 passed, 13 skipped). Fresh CLI build SHA-256 matches the binary used for the 495-case WPT comparison.
2026-09-27 07:59:18 +08:00
ldm0 e45cec31bb fix(events): preserve native dispatch state and listener lifetime
Set and clear child Window event dispatch fields, and clear Worker propagation flags after native delivery. Remove once listeners before invocation and skip listeners removed by an earlier callback, including during synchronous nested dispatch.

Add Window, child Window, and Worker regression probes for active event state, redispatch after stopImmediatePropagation, and once/listener removal during nested dispatch.
2026-09-27 07:59:17 +08:00
ldm0 3a7a17c958 fix(script): retain child parser state during script cleanup
Run classic script microtasks before restoring currentScript or releasing child parser nesting. Defer nested checkpoints to the outer script and wait for exception reporting before running reactions.

Cover inline and external scripts, syntax and runtime errors, document.open/write insertion points, and nested execution. Record the repaired synchronous-script bailout WPT.
2026-09-27 07:59:17 +08:00
ldm0 cab16e2775 fix(document): ignore destructive writes during module execution
Track nested ignore-destructive-writes counters per Document across module evaluation and its cleanup checkpoint. Preserve explicit input streams, cross-realm Document identity, and writes from later tasks or pending top-level await continuations.

Validate root and child module behavior with five regression tests. The 149-case dynamic-markup WPT run gains four passes with unchanged remaining outcomes; update their recorded case status. cargo fmt, workspace all-feature clippy, and all 17835 nextest tests pass.
2026-09-27 07:59:17 +08:00
ldm0 35a615fcec fix(dom): include CDATA in child text content 2026-09-27 07:59:17 +08:00
ldm0 8c214425c7 fix(document): reject XML child input-stream operations
Validate native Document type before parser and navigation bailouts, and preserve argument conversion before write and writeln state checks. Cover XML MIME types, side effects, exception realms, parser scripts, unload callbacks, and custom-element constructor ordering.
2026-09-27 07:59:17 +08:00
ldm0 aa06e0f7fa fix(document): reset child input-stream readiness 2026-09-27 07:59:17 +08:00
ldm0 a392771581 fix(document): initialize child navigation readiness 2026-09-27 07:59:17 +08:00
ldm0 b926dd5d3d fix(scripts): restore child parser insertion point on fetch errors 2026-09-27 07:59:16 +08:00
ldm0 1350128860 fix(scripts): queue parser preparation error events
Distinguish empty or invalid external script URLs from internal parser preparation failures. Queue trusted element errors on the shared DOM-manipulation source for root, document.write, and child parser paths without reporting spurious Window exceptions.

Retain exact Document ownership, listener checkpoints, and already-started state. Cover stale tasks and reused PageVm-local ids, and record the two WPT cases verified in CLI and CDP modes.
2026-09-27 07:59:16 +08:00
ldm0 3c7929c893 fix(trusted-types): align WebIDL interfaces and global accessors 2026-09-27 07:59:16 +08:00
ldm0 a2d2f4ae6d fix(csp): validate Trusted Types directive name tokens
Discard non-ASCII directives independently before duplicate lookup and retain exact ASCII whitespace boundaries. Match literal Trusted Types allowlist entries only when they satisfy tt-policy-name, while preserving arbitrary policy names without CSP or under a wildcard.

Add exhaustive ASCII token tests, directive parsing regressions, and enforce/report-only delivery coverage. Validated with fmt, full-workspace Clippy and all 17,735 nextest tests. The 219-case Trusted Types suite gains one passing case and five passing subtests in both CLI and CDP, with all other semantic results unchanged.
2026-09-27 07:59:16 +08:00
ldm0 38a452c4a2 fix(webapi): adapt Trusted Types and worker security bindings
Identify Trusted Types through shared native interface identities and
validate imported Worker script responses through the complete-head API.
Preserve the initiating origin, mode, credentials and security policy.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(18011 passed, 13 skipped).
2026-09-27 07:59:16 +08:00
ldm0 ef322053a2 fix(trusted-types): use node document policies for attribute sinks
Select attribute sink requirements, default policies, and report owners from the element's current node document while preserving the operation's exception realm. Avoid retrying native Attr mutations after conversion throws, and preserve native Attr namespace metadata and canonical cache identity.

Validated with cargo fmt, full-workspace Clippy, and all 17,730 nextest tests. The 219-case Trusted Types suite gains three passing cases and 36 passing subtests in both CLI and CDP, with no other semantic changes; all 13 DOM attribute/adoption regression cases remain passing.
2026-09-27 07:59:16 +08:00
ldm0 2e290b0be9 fix(trusted-types): report every violated CSP policy
Report each enforced and report-only Trusted Types policy independently, preserving per-policy endpoints and source locations. Queue worker TT and WebSocket CSP reports without synchronous reentry or overtaking earlier reports.

Honor report-only Trusted Types requirements for worker importScripts and string timers. Cover duplicate policies, default-policy conversion, trusted values, asynchronous delivery, and cross-directive ordering.

Validation: cargo fmt --all; workspace clippy with all targets/features and -D warnings; full nextest (17726 passed, 13 skipped). All 219 Trusted Types WPT cases compared in CLI and CDP: 191 to 195 passed, 9 additional passing subtests, no regressions. Promote the four verified cases in the baseline lists.
2026-09-27 07:59:16 +08:00
ldm0 c94d1c4d64 fix(workers): preserve imported script origins and no-cors boundaries
Keep worker settings URLs stable while imported classic scripts retain their own dynamic-import base, request URL and muted-error metadata. Allow classic no-cors imports without relaxing module CORS or response security policies.

Preserve CSP source locations and pre-redirect URLs through worker callbacks and report serialization. Add regression coverage for redirects, CSP/CORP/COEP, opaque errors, rejection reporting and nested imports.

Validation: cargo fmt --all; full workspace clippy with warnings denied; nextest 17699 passed, 13 skipped. Before/after CLI and CDP comparisons cover 707 cases without losing an originally passing case. Promote only the worker importScripts base-URL WPT. Both smoke baselines are 42/43, with Puppeteer blocked by the same missing local puppeteer-core dependency.
2026-09-27 07:59:16 +08:00
ldm0 c4aaf0a7d2 test(wpt): serve dynamic import redirects without CORS headers 2026-09-27 07:59:16 +08:00
ldm0 9fe4534412 fix(modules): bind synthetic text sources to their owning records
Resolve JSON and CSS evaluation data by exact module identity in the compiling realm, with weak context entries owned by compiled records. Remove the main-Document source lookup that broke child imports.

Cover static and deferred dynamic child imports, realm-local caches, parse errors, identity collisions and record disposal. Mark both JSON/CSS cross-origin WPT cases passing after CLI/CDP verification.
2026-09-27 07:59:16 +08:00
ldm0 53fba3fc3c fix(scripts): enforce client-origin CORS before script execution
Bind script loads and cache entries to the document client origin, authorize redirects before following them, and preserve redirect origin taint across Window and Worker Fetch/XHR validation and response filtering.

Check dynamic script CSP before transport, cover real HTTP and lifecycle regressions, and refresh the one newly passing WPT case after fixed-binary CLI/CDP comparisons.
2026-09-27 07:59:16 +08:00
ldm0 5240998e93 fix(webapi): reconcile replayed FileList binding and regressions
Use the shared FileList interface identity in the replayed input setter.
Remove the duplicate XHR URL and credentials regression while retaining
one complete copy, and format the newly replayed WebRTC import.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast
(17971 passed, 13 skipped).
2026-09-27 07:59:15 +08:00
ldm0 39c0da0701 fix(timers): preserve the initiating script nonce for string handlers 2026-09-27 07:59:15 +08:00
ldm0 ccdccc10df fix(modules): preserve source locations through exception reporting
Carry inline document URLs and parser offsets into V8, and report retained exception locations without reading author properties. Keep import.meta tied to the preparation-time resolution base and pass the actual document URL to child parsers.

Add seven regressions and mark evaluation-error-5.html passing after fixed-binary CLI/CDP comparisons. Full fmt, workspace Clippy, and nextest checks pass.
2026-09-27 07:59:15 +08:00