Commit Graph
1172 Commits
Author SHA1 Message Date
ldm0 e401b64d28 fix(wpt): preserve explicit fixture cache controls 2026-09-26 19:54:33 +08:00
ldm0 772ecc12a3 fix(navigation): prefer the source frame in named target lookup 2026-09-26 19:54:06 +08:00
ldm0 2fb6b9190a fix(html): resolve hidden until-found through native style computation 2026-09-26 19:53:53 +08:00
ldm0 c3e8c136c0 refactor(focus): reuse the reflected tabindex integer parser 2026-09-26 19:35:58 +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 723fd6b4d0 fix(history): retain forward entries on cross-document replacement 2026-09-26 19:18:26 +08:00
ldm0 9df1730490 fix(range): preserve live ranges when creating Window realms 2026-09-26 19:17:29 +08:00
ldm0 aaf76669ff fix(layout): default unpublished document client size to viewport
Return the configured viewport for document root clientWidth and clientHeight before the first layout publication. Preserve published geometry and keep ordinary element bounds dependent on a snapshot.

Cover first Playwright full-page and clipped full-page captures without prewarming. Verify that the initial capture uses the viewport fallback and that the next capture reaches the full published content height without making geometry reads trigger layout.
2026-09-26 19:14:15 +08:00
ldm0 e8f3272499 test(cdp): await child load before runImmediately isolation probe
Install the navigation through the target owner and wait for the child frame load event before registering the preload. This keeps delayed child initialization from replaying a new-document script during the top-level isolation assertion.
2026-09-26 19:14:15 +08:00
ldm0 47dde09e3e fix(cdp): expose viewport metrics before layout publication
Read live viewport and document scroll state for Page.getLayoutMetrics without forcing layout. Use published content bounds when available and the viewport otherwise.

Cover first Playwright viewport and clipped screenshots without CDP prewarming, and remove screenshot prewarming from DPR/resize and concurrent-page smoke cases. Keep element geometry and input dependent on explicit layout publication.
2026-09-26 19:14:15 +08:00
ldm0 011340a8a1 fix(cli): publish layout before fetch eval with --layout
Publish one layout-only snapshot after page readiness and delay for --eval and --eval-file. Keep geometry getters on the last published snapshot during script execution.
2026-09-26 17:13:28 +08:00
ldm0 c3c279cf36 chore(release): update version to 1.1.11 2026-09-26 07:11:39 +08:00
ldm0 123e1c36e8 chore(wpt): update wpt cases 2026-09-26 07:11:39 +08:00
ldm0 511c8a2341 refactor(parser): centralize element construction lifecycles
Separate parser provenance from active child construction. Share one
construction session across HTML/XML parsers and runtime adapters, with
completion ownership, normal-EOF checks, and cancellation that does not
publish incomplete styles.

Use ordinary creation for generated document shells and remove obsolete
per-element completion forwarding. Cover parser ownership, adoption,
duplicate completion, missing callbacks, and cancellation in tests.
2026-09-26 07:01:12 +08:00
ldm0 83e0afd1a1 fix(css): avoid reparsing incomplete inline styles
Process parser-created style sources after their closing tag or EOF, and
prepare later source changes through the stylesheet owner lifecycle.
Keep synchronization and CSSOM reads on prepared sources so CSSOM edits
survive reads and document initialization.

Complete styles in inert XML parsing and build the XML viewer through
ordinary DOM creation. Cover streaming, EOF, child documents, fragments,
and XML stylesheet behavior in regression tests.
2026-09-26 07:01:12 +08:00
ldm0 50284d3a58 fix(navigation): preserve child navigations started by javascript URLs 2026-09-26 06:42:45 +08:00
ldm0 ff782ab21a fix(navigation): admit renderer navigation that supersedes a pending load 2026-09-26 06:00:11 +08:00
ldm0 45fef05729 fix(window): classify embedded SVG as document content 2026-09-26 05:59:09 +08:00
ldm0 6360878537 fix(blob): remove stale realm finalizer from world wrapper 2026-09-26 05:52:44 +08:00
ldm0 614aa1fb33 refactor(realm): remove duplicate interface prototype caches 2026-09-26 05:52:44 +08:00
ldm0 0faec82780 refactor(blob): use receiver realm intrinsic for slice results 2026-09-26 05:52:44 +08:00
ldm0 5d740ca1bd fix(blob): preserve receiver realm for slice results 2026-09-26 05:52:44 +08:00
ldm0 f846fcb7f2 fix(domparser): use the Document interface for parsed XML 2026-09-26 02:38:19 +08:00
ldm0 40d476dbaf fix(service-worker): reject invalid registration query URLs 2026-09-26 02:36:39 +08:00
ldm0 281111efdd fix(events): build parse diagnostics without author stack access 2026-09-26 02:35:20 +08:00
ldm0 7fff5b9aee fix(events): read submitter from private event state 2026-09-26 01:38:23 +08:00
ldm0 929f73b148 fix(events): keep shared event state in private V8 backing 2026-09-26 01:38:23 +08:00
ldm0 8b57e489e6 fix(history): finish world isolation and native entry cleanup
Wrap nested platform members and synthetic events in each listener world,
sharing dispatch state and weak wrapper identities.

Keep internal history operations on native entries, restore complete native
snapshots before wrapping, and remove JSON and per-wrapper state remnants.
2026-09-26 01:38:23 +08:00
ldm0 248fc5c0f5 fix(history): isolate Navigation wrappers and share event dispatch 2026-09-26 01:38:23 +08:00
ldm0 74e924c864 refactor(history): extract native Window history storage 2026-09-26 01:38:23 +08:00
ldm0 75e27973c3 refactor(history): share Window history across isolated worlds 2026-09-26 01:38:23 +08:00
ldm0 4617ec9a62 fix(scroll): remove automatic DOM mutation anchoring 2026-09-25 23:14:13 +08:00
ldm0 276d0e8b5a fix(history): preserve scroll position across History API updates 2026-09-25 23:14:13 +08:00
ldm0 cc9d78f76f fix(dom): share native attribute node lookup 2026-09-25 20:58:59 +08:00
ldm0 9d62c0b6b9 fix(workers): reject dynamic imports in service workers 2026-09-25 20:56:42 +08:00
ldm0 37ffa1ec56 refactor(fetch): centralize header list projections 2026-09-25 20:55:05 +08:00
ldm0 f88dc644e4 fix(xhr): deliver early worker failures through the completion queue 2026-09-25 20:53:41 +08:00
ldm0 5ff4cd831e fix(modules): preserve import.meta.resolve conversion exceptions 2026-09-25 20:51:46 +08:00
ldm0 e126573a88 fix(worker): make global origin replaceable 2026-09-25 20:51:18 +08:00
ldm0 b4f875566d fix(indexeddb): validate factory receivers and preserve promise realms 2026-09-25 20:50:02 +08:00
ldm0 faa73d360e fix(fetch): keep data URL responses basic across request modes
Select basic response tainting for data URLs even for no-cors requests from opaque origins. Cover Window and Worker requests across modes, redirect settings, methods, input forms, MIME values, and readable byte payloads.

Source: edabb273b4
2026-09-25 10:43:26 +08:00
ldm0 488b8713d2 fix(csp): preserve parsed source token boundaries
Extracted from 2449c5d6adce351bfbad550909ebd418b4019e21.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings. Runtime tests were not run for this split.
2026-09-25 10:41:48 +08:00
ldm0 8cd6fa4807 fix(script): require supplied JavaScript MIME for strict loads
Require an explicit parsable JavaScript Content-Type for strict script loading while preserving permissive classic document script rules. Cover missing, empty and invalid headers, JavaScript MIME essences, and imported HTTP/Blob scripts.
2026-09-25 10:40:57 +08:00
ldm0 92c678bf54 fix(fetch): request identity encoding for HTTP ranges
Select Accept-Encoding: identity when a Range header is present, while preserving explicit embedder encoding preferences. Exercise buffered, HTML and raw transports, malformed and empty ranges, redirects, repeated requests and response decompression.
2026-09-25 10:33:04 +08:00
ldm0 2bc7159532 fix(modules): settle failed dynamic import fetches
Mark a failed fetch in the shared module map before notifying graph clients, so concurrent imports and later cached imports all reject. Route document and child owners through the same completion path.

Cover concurrent imports of the same root and a shared dependency, fresh TypeError rejections, and subsequent imports after a cached fetch failure.
2026-09-25 10:30:52 +08:00
ldm0 8e890e25b7 fix(scroll): expose live offsets and sync the owning Window 2026-09-25 10:19:22 +08:00
ldm0 4b24590ce6 fix(layout): isolate PDF print layout from interactive snapshots 2026-09-25 10:19:22 +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 272c611c92 fix(layout): publish observer and nested frame state with snapshots 2026-09-25 10:19:22 +08:00