Commit Graph
1201 Commits
Author SHA1 Message Date
ldm0 c2c5ce0da0 fix(forms): sanitize multiple and IDN email values 2026-09-27 05:50:50 +08:00
ldm0 4277649618 fix(navigation): create transitions in the owning realm 2026-09-27 05:49:34 +08:00
ldm0 db8679367c fix(dom): preserve document domains until replacement 2026-09-27 05:49:10 +08:00
ldm0 47aff07f91 fix(performance): inherit navigation timing from resource entries 2026-09-27 05:48:09 +08:00
ldm0 e53b60bd7c fix(sri): retain supported hashes with malformed padding 2026-09-27 05:46:50 +08:00
ldm0 1d780bf926 fix(forms): preserve Get action URL submission semantics 2026-09-27 03:34:16 +08:00
ldm0 db2e6f84f9 fix(iframe): reuse referrer policy for explicit about blank navigation 2026-09-27 03:27:28 +08:00
ldm0 3ea89722bc fix(dom): preserve AbortSignal dependency order during reentrant aborts 2026-09-27 03:25:21 +08:00
ldm0 c37bcbaa81 fix(cors): validate complete preflight permission lists 2026-09-27 03:17:52 +08:00
ldm0 bf3ed110f7 fix(cdp): preserve correlated command responses after page replacement 2026-09-27 03:10:54 +08:00
ldm0 f8ae027ad4 fix(svg): retain complete path segments before parse errors 2026-09-27 03:09:49 +08:00
ldm0 b6156fadc1 fix(parser): route XHTML template children through template contents 2026-09-27 03:07:54 +08:00
ldm0 2434b54320 chore(wpt): refresh cases after initial layout changes
Run the full all profile on Moli d40181f729 and WPT db95fafd1f with 50 CDP workers. All 13,558 cases completed: 9,494 pass, 3,744 fail, 255 timeout, 50 harness-stalled, 14 error, and 1 crash. Compared with the prior lists, 443 gained pass and 39 lost pass.
v1.1.11
2026-09-27 01:43:26 +08:00
ldm0 ce372e81ef test(cdp): lock layout command lifecycle categories 2026-09-27 01:43:26 +08:00
ldm0 9c8868a8ad refactor(layout): use direct queries for single geometry reads 2026-09-27 01:43:26 +08:00
ldm0 2510929533 fix(cdp): derive page metrics from initialized layout 2026-09-27 01:43:26 +08:00
ldm0 ddbf52a668 feat(layout): initialize shared geometry on first demand 2026-09-27 01:43:26 +08:00
ldm0 5357eb6229 fix(screenshot): keep viewport fallback in page metrics
Restore zero DOM dimensions before layout publication. Keep the viewport
fallback in Page.getLayoutMetrics so clients can construct a positive clip
without changing element geometry or screenshot command semantics.

Empty clips remain invalid regardless of layout publication state. CLI
screenshot_full continues to request FullDocument directly on its first capture.

Cover cold and published clip rejection, page-metric captures with DPR and
scale, and CLI full-document output without a preceding viewport capture.
Document and test the separate cold Playwright fullPage limitation.
2026-09-27 01:43:26 +08:00
ldm0 5f81919a42 chore(wpt): refresh full case lists
Record the complete profile-all run on aebba34fb5: 13,558 cases, 9,090 passing. Keep this baseline separate from the subsequent screenshot fallback fix.
2026-09-27 01:43:26 +08:00
ldm0 24743af0e4 fix(script): report document.write exceptions through shared execution 2026-09-26 20:22:11 +08:00
ldm0 aebba34fb5 fix(history): guard browser-owned traversal with sandbox policy
Check the History receiver's active document permission before handing
an opaque history destination back to the top-level browser controller.

Cover browser-owned steps in both directions, back/forward/go, dynamic
sandbox attributes, and a child method borrowed by top-level History.
2026-09-26 19:54:57 +08:00
ldm0 791c4c1dc5 fix(sandbox): preserve active document navigation permissions
Store top-navigation permission in the existing DocumentSandboxPolicy and
combine iframe and response CSP restrictions. Read the committed policy
when checking navigation instead of the live iframe sandbox attribute.

Cover adding and removing restrictions after load, applying them on the
next navigation, and combining iframe and CSP permissions.
2026-09-26 19:54:57 +08:00
ldm0 8e4d0a347f fix(css): synchronize cached wrappers in their creation realm
Only project native CSS changes onto existing node wrappers. Enter their
creation context through a shared helper so child parsing cannot allocate
Document or stylesheet owner wrappers in the parent realm.

Keep lazy CSS initialization and updates to held stylesheet/font collections,
with regression coverage for child object realms and collection identity.

Validation: cargo fmt, workspace clippy, and all 18,747 Rust tests passed.
All seven affected WPT cases passed with the release build.
2026-09-26 19:54:57 +08:00
ldm0 c33b821fbd chore(wpt): refresh full case lists after regression fixes 2026-09-26 19:54:57 +08:00
ldm0 c40d8b877a fix(dom): ignore invalid hyperlink URLs during activation 2026-09-26 19:54:57 +08:00
ldm0 93c1a34220 fix(history): block sandboxed traversal of ancestor entries 2026-09-26 19:54:57 +08:00
ldm0 98ba9a76ae fix(navigation): restore canceled traversal error filenames 2026-09-26 19:54:57 +08:00
ldm0 203b088184 fix(history): preserve traversal state identity in the owning realm 2026-09-26 19:54:57 +08:00
ldm0 b55824eba4 fix(navigation): allocate activation in the owning realm 2026-09-26 19:54:57 +08:00
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