Commit Graph
41 Commits
Author SHA1 Message Date
ldm0 e53b60bd7c fix(sri): retain supported hashes with malformed padding 2026-09-27 05:46:50 +08:00
ldm0 3ea89722bc fix(dom): preserve AbortSignal dependency order during reentrant aborts 2026-09-27 03:25:21 +08:00
ldm0 24743af0e4 fix(script): report document.write exceptions through shared execution 2026-09-26 20:22:11 +08:00
ldm0 d86a023c35 fix(preload): share destination validation before load admission 2026-09-26 19:27:10 +08:00
ldm0 adffcce2a4 fix(preload): share nonblocking link lifecycle ownership 2026-09-26 19:23:09 +08:00
ldm0 50284d3a58 fix(navigation): preserve child navigations started by javascript URLs 2026-09-26 06:42:45 +08:00
ldm0 b4f875566d fix(indexeddb): validate factory receivers and preserve promise realms 2026-09-25 20:50:02 +08:00
ldm0 179241dedd refactor(layout): publish layout only through explicit visual output
Make geometry, input and observers read the latest published layout without
cold-start or invalidation-triggered layout. Only screenshot, screencast and
PDF output can build and publish a new tree.

Connect WebDriver page screenshots to the shared output pipeline, explain how
to initialize layout in errors, and migrate fixtures to explicit publication.
Remove obsolete read policies and embedded-frame completeness metadata.
2026-09-25 10:19:22 +08:00
ldm0 663a5501d7 fix(history): preserve each queued History API traversal
Coalescing consecutive History API requests discarded intermediate
same-document traversals and their events when joint traversal plans
entered the shared queue. Keep these requests in order and derive the next
index from the last queued step, while retaining Navigation API promise
reuse.

Apply top-level traversals to the page's default Window when an isolated
realm initiated the request. Add local back/forward coverage across same-
and cross-document entries, and verify every event and microtask turn in
the existing history tests and fixture.

Fixes: f8f46bf48 (fix(history): coordinate complete joint traversal plans)
2026-09-25 03:03:07 +08:00
ldm0 5ab69e4aac fix(wpt): honor DOMException assertion constructors and realms 2026-09-24 20:22:08 +08:00
ldm0 3f8ce8a940 fix(history): use document lifecycle for initial blank replacement 2026-09-23 16:11:02 +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 7eb6444394 fix(history): preserve joint length for initial child documents (#763) 2026-09-23 04:43:54 +08:00
ldm0 c019abeeb1 fix(streams): disturb the source when piping starts 2026-09-22 12:17:45 +08:00
SpringCorel c6de50242a fix(nextest): make root_client_metrics_track_window_surface_profile work on all platforms 2026-09-16 14:59:42 +08:00
ldm0 24dcb813c0 test(lifecycle): gate post-DCL script loading explicitly
Source: fa5059a062
2026-09-15 13:12:39 +08:00
ldm0 345a66ba07 test(css): cover picture-in-picture display mode queries
Source: 784fdc207e
2026-09-14 21:43:31 +08:00
ldm0 c0a87c6960 fix(fetch): preserve committed origins for document subresources 2026-09-14 06:48:28 +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 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 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 14949fd862 fix(dom): include CDATA in child text content
Extract an independently mergeable topic from wpt-misc-fix at
a70a96f9d1.

Register the child text content regression module without including later script test modules.
Include the XML document fixture route used by the CDATA regression so this branch does not depend on the separate XML input-stream changes.

Source commits:
- 7f587e1251
- ae3a3f1096

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
2026-09-10 05:50:52 +08:00
ldm0 0c05739324 perf(network): retire cumulative raw output history 2026-09-05 00:16:38 +08:00
ldm0 4c4055d5e0 fix(fetch): reject page output from raw headers 2026-09-03 23:13:25 +08:00
ldm0 76d87a5948 test(fetch): isolate network idle timeout budget 2026-08-27 17:53:51 +08:00
ldm0 9725d7610d fix(css): enforce exact style element type 2026-08-27 15:08:24 +08:00
ldm0 461f9bcac4 feat(fetch): enrich JSON dump metadata 2026-08-24 20:04:55 +08:00
ldm0 79a1bca120 refactor(style): retain incremental document style worlds 2026-08-24 18:56:48 +08:00
ldm0 54f453cdd0 fix(fetch): preserve readiness deadlines and diagnostics
Apply one absolute deadline across response headers, streaming raw bodies, page creation, and later readiness waits. Report the active timeout phase without extending the caller's budget and reject raw documents from Page APIs before an unusable body can stall.

Give CLI fetch failures a stable two-line Error/Reason presentation while retaining full anyhow chains for non-fetch failures, including raw-document page-wait errors.
2026-08-23 04:45:50 +08:00
ldm0 e2fdb90600 feat(renderer): allow lifecycle navigation fallback 2026-08-23 03:02:03 +08:00
ldm0 3a8e52ba99 Implement classic scrollbars 2026-08-22 19:44:54 +08:00
ldm0 d7df97dc4f fix(fetch): share timeout across replacement navigation 2026-08-17 01:23:24 +08:00
ldm0 bea0f130b5 test: cover HTTP error navigation edge cases 2026-08-16 21:10:24 +08:00
ldm0 eb4b7e4a36 feat: follow HTTP error replacement navigations 2026-08-16 21:10:24 +08:00
ldm0 95a671e2e0 feat(fetch): return best-effort results on readiness timeout 2026-08-16 02:58:13 +08:00
ldm0 f2a2095751 fix(navigation): stabilize sequential CDP lifecycle 2026-08-13 07:07:00 +08:00
ldm0 edd2c2df15 Stabilize large NodeList regression test 2026-08-12 00:46:14 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00