Commit Graph
815 Commits
Author SHA1 Message Date
ldm0 73f2e785ea fix(emulation): reject unavailable throttling modes 2026-09-15 14:46:31 +08:00
ldm0 4bef2b6dfd fix(emulation): preserve device metric reset semantics 2026-09-15 14:46:31 +08:00
ldm0 cb12920334 fix(emulation): preserve and validate max touch points 2026-09-15 14:46:31 +08:00
ldm0 f911b83d39 fix(emulation): apply focus overrides to loaded targets 2026-09-15 14:46:31 +08:00
ldm0 e691401fbd test(clone): cover non-serializable platform object rejection
Source: 7624250527
2026-09-15 13:35:57 +08:00
ldm0 8f94ad9528 fix(fetch): remove one initial UTF-8 BOM from Body text and JSON
Decode text and JSON consumers with UTF-8 BOM removal while retaining the existing JSON parser and all binary consumers. Cover constructed Request/Response bodies and asynchronously split Response streams, repeated and misplaced BOMs, malformed UTF-8, UTF-16 markers, MIME charset independence, SyntaxError, and raw binary/form values.

Source: 3c3bd08064
2026-09-15 13:21:08 +08:00
ldm0 24dcb813c0 test(lifecycle): gate post-DCL script loading explicitly
Source: fa5059a062
2026-09-15 13:12:39 +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 226ceb3931 fix(table): span zero row spans to section end 2026-09-15 01:54:41 +08:00
ldm0 320d82d191 fix(csp): require every integrity hash to match policy
Share parsed SRI metadata with CSP hash-source matching. Require a nonempty
set whose every supported hash is authorized, while response verification
continues to use the strongest hashes. Cover malformed tokens, hash aliases,
weaker hashes, and literal digest matching.

Source: f960314f49
2026-09-15 01:22:32 +08:00
ldm0 f6f95676a1 test(dom): cover legacy null conversion in markup setters
Cover innerHTML, outerHTML and ShadowRoot.innerHTML null conversion alongside undefined, object and Symbol inputs.

Source: 48d2b3be65
2026-09-14 21:55:52 +08:00
ldm0 6c6886e585 test(css): cover registered relative currentcolor values
Source: 329918b754
2026-09-14 21:55:24 +08:00
ldm0 e45aad07a6 test(renderer): scope short script watchdog timeout
Source: f316f7ecf9
2026-09-14 21:54:28 +08:00
ldm0 345a66ba07 test(css): cover picture-in-picture display mode queries
Source: 784fdc207e
2026-09-14 21:43:31 +08:00
BibekPathak b698e62882 treat application/wasm as a binary document type 2026-09-14 19:12:03 +08:00
ldm0 a4b2ad7bc1 fix(window): expose popup browsing context names
Source: 16f40e98d1
2026-09-14 08:09:41 +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 c0a87c6960 fix(fetch): preserve committed origins for document subresources 2026-09-14 06:48:28 +08:00
ldm0 8630dea13b perf(fetch): avoid copying response bytes for module consumers
Use byte-only decomposition for Response and NavigationResponse instead of
discarding the text returned by into_parts(). Module, dedicated worker, and
service worker consumers now transfer the existing exact byte allocation.

Verify storage transfer for UTF-8 and non-UTF-8 payloads.

Source: e32030e484
2026-09-14 06:45:16 +08:00
ldm0 91f231d92c fix(doc): update lexbench-efficiency-map 2026-09-14 06:43:26 +08:00
ldm0 3830abc0ac fix(blob): ignore URL fragments during resource lookup 2026-09-14 05:56:17 +08:00
ldm0 8371d328dd fix(css): enable starting-style parsing 2026-09-14 05:55:33 +08:00
ldm0 6c64713043 fix(benchmark): drain WPT engine logs while running 2026-09-14 05:54:04 +08:00
ldm0 0e3227fecc fix(marquee): enforce hidden UA overflow 2026-09-14 05:53:07 +08:00
ldm0 ca14f3193f fix(v8-platform): release isolate callbacks outside registry locks
Close retired mailboxes and cancel their generations under the registry lock, then release callback captures after unlocking. Publish environment invalidations through the registry while retaining only notifiers that need waking.

Cover callback destruction during unregister and replacement, lock-free owner wake, and delayed wake after teardown. Validated with cargo fmt --all, all-target all-feature Clippy, 52 related tests over 5 stress iterations, and the complete Nextest suite (17505 passed, 13 skipped).
2026-09-14 00:35:54 +08:00
ldm0 38b162da58 test(parser): cover customizable select wrapper parsing 2026-09-14 00:35:20 +08:00
ldm0 53f790c13a fix(fetch): require browser origins and unify SW request state
Keep request origin independent of URL resolution and referrer context,
including local blob fetches and inherited or sandboxed srcdoc documents.
Reject missing browser origins at the resource client boundary and retain
one Request across Service Worker redirects and network fallback.

Cover dispatch rejection, wire Origin/Cookie headers, memory-cache
partitioning and preserved Service Worker request metadata.

Validation: workspace fmt and Clippy passed; Nextest passed 17,517 tests
with 13 existing skips. Renderer test debug symbols were disabled to fit
available build memory; tests and debug assertions were unchanged.
2026-09-13 16:14:50 +08:00
ldm0 77783ece9d fix(fetch): enforce request modes and CORS before redirects 2026-09-13 16:14:50 +08:00
ldm0 92737248a6 chore(release): update version to 1.1.6 2026-09-13 06:55:25 +08:00
ldm0 3a5cf7f123 refactor(emulation): clarify environment invalidation contracts
Name coalesced work by the native caches it invalidates, and document that the Worker armed bit tracks the outstanding fallback message rather than mailbox contents.

Consolidate Date/Intl options regressions into named cases and fold time-first legacy dates into the shared parsing matrix, retaining their inputs and native-semantic assertions.
2026-09-13 05:55:27 +08:00
ldm0 2d249b069c refactor(emulation): coalesce process environment notifications
Publish typed invalidation flags under the environment lock and wake isolate owners only after releasing it. Bound page and worker notification work while preserving command FIFO, teardown safety, and observation ordering.

Remove stale wrapper-era dependencies and terminology, and add mailbox race and CDP burst regressions.
2026-09-13 05:55:27 +08:00
ldm0 4a1e6fd196 fix(fetch): unify script headers and CORS response validation
Generate Origin independently of browser destination metadata, and attach script
metadata at classic, module, and preload request builders. Share redirect URL-list
rules across request generation and response validation, and remove final-only
CORS validation from manifests, stylesheets, and request interception.

Reject failed CORS checks even without supported integrity metadata. Preserve CSP
reporting before dynamic script fetches and use committed Window origins for
srcdoc and sandboxed child script/module requests.

Add wire-level Origin, Cookie, and Fetch Metadata regressions, plus manifest,
stylesheet CSSOM, CSP, and child module/preload coverage.
2026-09-13 04:46:51 +08:00
ldm0 b63197ff8a fix(fetch): retain redirect state across service worker fallback
Keep redirect history in Request so Service Worker handoffs, network
redirects, preflights, Origin serialization, cookies, and TLS credentials
share the same state. Avoid reusing another request's response URL list
from the renderer memory cache.

Validate and filter network responses using their full history while
preserving readable Service Worker response filters across streaming and
buffered delivery. Returning to the initiating origin keeps network CORS
tainting; worker-produced responses retain their own filtering.

Add wire-header, credentials, cache, and worker response regressions, and
correct the local Fetch/XHR redirect fixtures to authorize and expose CORS
responses after a cross-origin round trip.
2026-09-13 04:46:51 +08:00
ldm0 c1412b76b9 fix(fetch): preserve redirect response provenance
Distinguish network, service worker, and browser-internal redirects so synthetic responses are not subjected to network CORS checks. Preserve every hop for redirect taint and Origin validation, including across navigation response conversions.

Add seven cross-origin service worker script scenarios and guard CORS checks for cached network redirects without ExtraInfo. The new integration regression fails before the fix and passes afterward.

Validated with cargo fmt --all, workspace Clippy across all targets and features with warnings denied, and cargo nextest run --no-fail-fast: 17459 passed, 13 skipped. Used one build job for the full test run after a parallel-build rustc process was killed.
2026-09-13 04:46:51 +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 a4364bf149 fix(scripts): validate response eligibility before SRI
Preserve response filtering through script and service worker loading, validate CORS authorization across redirects, and reject opaque responses before computing supported integrity digests. Keep empty and unsupported metadata behavior unchanged.

Add parser, dynamic script, module, and service worker regressions covering 39 scenarios. Validated with cargo fmt --all, full workspace Clippy, and cargo nextest run --no-fail-fast (17457 passed, 13 skipped).
2026-09-13 04:46:51 +08:00
ldm0 19e5667fe3 refactor(emulation): notify isolate owners without environment generations 2026-09-13 01:07:35 +08:00
ldm0 63143f6283 refactor(emulation): tighten process environment ownership
Make process environment owners non-cloneable RAII authorities, share session admission while preserving failed and no-op outcomes, and consolidate duplicate isolate-entry handling. Keep read-only owner queries side-effect-free and add lifecycle regressions.
2026-09-13 01:07:35 +08:00
ldm0 3bead42808 refactor(emulation): use native process-wide ICU defaults
Remove the Date/Intl wrappers, custom date parser and per-Page replay state. Keep exclusive locale/timezone ownership in a process controller and refresh existing Page and Worker isolates through generation-bound notifications and observation boundaries, including nested Inspector pauses.

Release claims on session/target/context retirement, retain native coercion and locale matching, and cover lifecycle restoration with Rust, BiDi and process-isolated CDP regressions.
2026-09-13 01:07:35 +08:00
ldm0 007519d616 fix(emulation): preserve Date coercion and locale fallback semantics 2026-09-13 01:07:35 +08:00
ldm0 9fda0f808e refactor(renderer): declare Date and Intl wrapper bindings 2026-09-13 01:07:35 +08:00
ldm0 156e16873d fix(emulation): preserve Date and Intl input semantics
Handle Unicode and legacy date inputs without unsafe slicing or timezone corruption. Normalize ICU locale IDs with the bundled ICU library and forward Intl options without violating frozen-object invariants. Add renderer regressions and process-isolated CDP input coverage.
2026-09-13 01:07:35 +08:00
ldm0 ae7e1067e6 fix(emulation): preserve locale and timezone semantics 2026-09-13 01:07:35 +08:00
ldm0 6f686b88f9 fix(url): honor base URLs in parsing APIs
Source-commit: 0b024cbe7d
2026-09-12 06:57:21 +08:00
ldm0 da38689cc5 fix(window): resolve API URLs against entry realms
Source-commit: 58b40add02
2026-09-12 06:50:23 +08:00
ldm0 c3224fe6d1 fix(dom): reflect link integrity for modulepreloads 2026-09-12 06:40:39 +08:00
ldm0 e559cff157 fix(preload): start links queued by completion callbacks 2026-09-12 06:40:39 +08:00
ldm0 416936f732 fix(modules): enforce import-map integrity
Source-commit: 259f7aaa46
2026-09-12 06:40:39 +08:00