Commit Graph
3337 Commits
Author SHA1 Message Date
ldm0 82c79340fe fix(service-worker): retain Window messages until the client queue is enabled
Source-commit: 71ff1009f7
2026-11-13 15:51:37 +08:00
ldm0 ecb5ec5d39 fix(renderer): retain Page window identity through target close
Reuse the Page-owned browsing context name cell and auxiliary identity when
bootstrapping a replacement Document after target lookup entries are removed.
Keep first-document registration and identity assertions intact.

Cover unregister-before-bootstrap deterministically and exercise in-flight
navigation closure through the default CDP target lifecycle smoke.
2026-11-13 03:32:14 +08:00
ldm0 aec9cd8f2a test(wpt): refresh full release cases after regression fixes
Record the complete all-profile CDP run of source 1344d8d26d with 50 workers,
the unchanged 120-second outer deadline and WPT db95fafd1f. All 14,065
selected cases are present, including 442 IndexedDB entries; case selection
and execution order match the first full run.

Results: 10,405 pass, 3,426 fail, 224 timeout, 6 error, 3 harness-stalled,
1 crash. Passes increase by 35 from the tracked lists and by 10 from the
unfixed release run, with no new pass-to-nonpass transitions against that run.

The five fixed WPT cases pass in the complete run and in 5/5 targeted rounds.
Retain the observed iframe failure and Trusted Types timeouts: the old
release also fails the iframe case, and all three Trusted Types variants
have old-release timeout evidence, including 4/10 concurrent runs for 36-last.
Document-write MutationObserver subtest variation also reproduces on the
old release. Do not replace full-run statuses with selective retry results.

Release SHA256: 494b20e2bdd6730cbc855d1f25919453b16755964c74cc4bada3f526eefe58af
2026-11-13 03:28:46 +08:00
ldm0 52587f3c37 fix(script): keep currentScript in its execution Document
A running script can be adopted into another Document without changing the
source Document's currentScript. Query the main execution stack for the
main Document rather than filtering by the node's new ownerDocument;
retain the existing per-child-Document stack and shadow visibility checks.

Dynamic inline error reporting exposed this pre-existing bug as a WPT
failure. A direct old-release probe also returns the wrong currentScript,
so the old WPT pass was masking the exception rather than proving correct
behavior. Cover adoption, the destination's null value and stack restoration.
2026-11-13 03:28:46 +08:00
ldm0 910e4d798e fix(cache): reify native Request keys without URL conversion
Cache.keys rebuilt stored native requests through the author Request
constructor. Credential-bearing URLs supplied by XHR are valid internal
identities but public URL conversion now rejects them, leaving the Cache
Storage credentials WPT waiting for a worker reply.

Use the existing native Request declaration to restore cached keys without
calling author constructors. Retain the public credential validation and
cover three distinct credential URLs, headers, cloning and a replaced
Request constructor.
2026-11-13 03:28:46 +08:00
ldm0 54546adf32 fix(paint): align overflow clips with snapped box edges
Overflow clip geometry retained fractional layout offsets while its box
background used snapped paint geometry. Atomic flow grouping changed which
background and text commands shared a clip layer, exposing different edge
blending in three grid scrollbar reftests (240 pixels, max difference 17).

Snap owned overflow clips in the same pre-transform paint space as box
backgrounds. Preserve CSSOM geometry, property transforms and clip-chain
reuse. Cover block and grid containers with fractional offsets and sizes.
2026-11-13 03:28:46 +08:00
ldm0 86a05bd7ce fix(service-worker): use native Window containers for notifications
Source-commit: 456fc31a2d
2026-11-13 02:35:06 +08:00
ldm0 3650a74c6a fix(navigation): honor cancellation before revealing fragment targets
Source-commit: e426ce91da
2026-11-13 02:22:08 +08:00
ldm0 f7bb6f6421 fix(window): reject deleting live indexed children
Source-commit: 3354a1a4c0
2026-11-13 02:20:13 +08:00
ldm0 071e553e5b refactor(dom): name atomic move semantics consistently 2026-11-13 02:01:36 +08:00
ldm0 1ed0e2238e fix(cdp): apply late request policy before commit projection
A newly committed native Document can execute before its commit output has
been projected into protocol state. Routing Fetch.enable through the
projected binding then updates a loaded predecessor or no Page at all,
allowing requests to bypass interception after a successful ACK.

Address restricted request-policy updates to the synchronously admitted
renderer Page and wait for native completion. Reuse this route for Fetch
cleanup and blocked URLs without granting general unbound Document access.

Hold actual native commit publications in the regression and inspect the
exact evaluation output fence. Cover new/replaced Pages with interception
enable/disable and blocked URLs, with no external I/O in negative controls.
The original controlled reproducer fails 3/3 on the rebase baseline.

Validation: fmt; workspace/all-targets/all-features Clippy; 23,026 Nextest
passed, 20 skipped; three targeted tests x20 and 30 module tests x5, all
without retries.
v1.1.24
2026-11-13 01:42:40 +08:00
ldm0 bf819ba3ce fix(dialog): read closedby from the null namespace 2026-11-13 01:42:40 +08:00
ldm0 8348e735d2 fix(dialog): honor closedby none for Escape requests
Honor closedby=none before dispatch and after cancel listeners. Match Chromium case handling and invalid-value defaults, keep script closure available, and cover dynamic policies and a disabled topmost modal.
2026-11-13 01:42:40 +08:00
ldm0 e454dd9cc3 fix(dialog): clear modal registration on node removal and adoption
Clear native modal state and the old Document registration when connected nodes are removed or adopted. Keep validated atomic moves in their original opening and priority, including the split DOMDebugger path. Cover light and shadow subtrees, adoption and background inertness.
2026-11-13 01:42:40 +08:00
ldm0 523f0ba783 fix(dialog): bind Escape close requests to one modal opening
Capture the Document, dialog and opening generation before cancel dispatch and verify them before closure. Removing open invalidates the request without clearing modal registration. Cover close/reopen, nonmodal reopen, raw attribute toggles, no-op operations and exact queued close-event counts.
2026-11-13 01:42:40 +08:00
ldm0 51b3dd516a fix(dialog): use internal keyboard state for Escape
Read the trusted keyboard key from its internal backing so page-owned properties and prototype getters cannot change the Escape default action.
2026-11-13 01:42:40 +08:00
ldm0 454052c5a9 fix(dialog): dismiss modals in opening order per document 2026-11-13 01:42:40 +08:00
BibekPathak 00a464b355 fix(dialog): light-dismiss modal dialogs on Escape 2026-11-13 01:42:40 +08:00
ldm0 54988a7960 refactor(indexeddb): replace lifecycle slots with typed access
Read and update transaction status directly in Rust. Keep request readiness
and cursor positions as an enum and Option<usize>, and access database
lifecycle state through typed operations.

Preserve traced request values in the V8 heap behind a closed field enum
so request/result cycles remain collectible. Remove string slot dispatch,
property shims, the unused blocked marker and duplicate database scope.
2026-11-13 01:39:46 +08:00
ldm0 4c51eab400 refactor(indexeddb): remove legacy schema state adapters
Use typed metadata as the only store name source. Remove retired metadata
slots, descriptor projection, swallowed writes and the mutable index marker;
classify cursor sources by their native wrapper kind.

Make queue scope types explicit, exercise StoreId in admission tests, and
centralize renderer metadata lookup by schema ID. Retain failed schema
handle attributes and immutable metadata needed for rollback.
2026-11-13 01:39:46 +08:00
ldm0 b8190ee87d refactor(indexeddb): address SQL schema by stable IDs
Use the persisted StoreId and IndexId in SQL commands, transaction scopes and renderer handles. Reserve IDs without waiting for the SQL owner and recover their counters with committed disk metadata.

Remove name-based request targets, separate renderer identity tokens and cursor name refresh. Cover concurrent reservations, abort, idle reconnect, catalog recovery, restart, stale IDs and old-name reuse.
2026-11-13 01:39:46 +08:00
ldm0 ff19670cf9 fix(indexeddb): freeze request sources after argument conversion 2026-11-13 01:39:46 +08:00
ldm0 aef25efaba test(indexeddb): cover rename source identity and upgrade rollback
Exercise name validation, admitted reads and writes, value and key cursors, reused names, cross-realm aliases, and explicit or constraint-driven upgrade aborts in Window, child and Worker contexts.
2026-11-13 01:39:46 +08:00
ldm0 f76be5f259 feat(indexeddb): wire transactional schema name setters
Expose native name accessors and queue the existing SQL rename commands with schema validation. Keep stable schema identities across metadata edits and rollback, and capture cursor source names at operation admission. Preserve names on finished handles.
2026-11-13 01:39:46 +08:00
lanyue-llk 8c64bf14ab fix(layout): return border-box content quads 2026-11-13 01:25:08 +08:00
ldm0 0766ae0ab3 refactor(renderer): align page script host helper names 2026-11-13 00:46:54 +08:00
ldm0 78b32b1417 test(bidi): pipeline navigation queries with cancellation controls
Hold A's HTTP response while sending getRealms, evaluate or callFunction followed by close and getTree without awaiting the query. Require each terminal exactly once, a usable independent context and a released Runtime slot. Preserve Chrome's valid out-of-order completion rather than requiring the pipelined tree snapshot to follow close. Keep these three cross-engine cases in the default WebDriver smoke suite.
2026-11-13 00:42:01 +08:00
ldm0 d6046d2725 fix(bidi): own document admission in pending Runtime commands
Keep the socket actor responsive while a context-targeted Runtime command waits for its Document. Retain the original host and session binding until admission can validate and dispatch in one finite owner turn. Cover close, replacement, navigation completion, session end and disconnect in standalone and Classic-attached BiDi, including exact-once responses and revoked identities.
2026-11-13 00:42:01 +08:00
ldm0 f4f174260f test(runtime): await stylesheet responses through scheduler inputs 2026-11-13 00:42:01 +08:00
ldm0 3e3bee3d75 fix(bidi): keep unrelated contexts live during navigation 2026-11-13 00:42:01 +08:00
ldm0 a44c82a743 fix(protocol): cancel target navigation before native teardown 2026-11-13 00:42:01 +08:00
ldm0 0967c3654a refactor(protocol): scope scheduler navigation prerequisites 2026-11-13 00:42:01 +08:00
ldm0 dc84a7ffab refactor(renderer): clarify script host and shared isolate names 2026-11-13 00:29:11 +08:00
ldm0 31badc31e4 refactor(websocket): construct requests with HeaderFields 2026-11-12 23:42:55 +08:00
ldm0 72f22d18f6 fix(selection): sync all Selection associations on Range mutation
Source-commit: b5d2f8db61
2026-11-12 23:38:59 +08:00
ldm0 857005376f fix(cli): make fetch timeout-ms the canonical option 2026-11-12 23:32:22 +08:00
ldm0 931a037b2d docs(cli): use canonical options in READMEs and skills 2026-11-12 23:32:22 +08:00
ldm0 1c00ef7443 fix(dump): strip adopted shadow stylesheets from exports 2026-11-12 23:26:36 +08:00
ldm0 db7c53eb73 fix(dump): inline live frames inside shadow roots 2026-11-12 23:26:36 +08:00
ldm0 72c21bbccf test(renderer): align serialized HTML with author shadow roots 2026-11-12 23:26:36 +08:00
lanyue-llk 35961377ba fix(dump): include and strip shadow roots in html dumps 2026-11-12 23:26:36 +08:00
lanyue-llk d529fe2d00 fix(dump): keep child frame shadow roots and scripting flags in html dumps 2026-11-12 23:26:36 +08:00
lanyue-llk 7aa69b1e77 fix(dump): nest and strip child frame documents in html dumps 2026-11-12 23:26:36 +08:00
ldm0 ee5279eb2c chore(release): update version to 1.1.24 2026-11-12 21:12:22 +08:00
ldm0 69d80ea742 refactor(protocol): remove source-owned Native insertion graphs 2026-11-12 20:44:39 +08:00
ldm0 843f723122 test(cdp): cover navigation while its source evaluation waits 2026-11-12 20:44:39 +08:00
ldm0 b4abe33fc8 fix(protocol): preserve output order for overlapping insertions 2026-11-12 20:44:39 +08:00
ldm0 2fac328780 fix(protocol): unblock three-stream nested insertions 2026-11-12 20:44:39 +08:00
ldm0 ebf62d93b1 fix(cdp): finish accepted browser close despite reply failure 2026-11-12 20:44:39 +08:00
ldm0 97bb57bed0 fix(downloads): progress independently of command replies 2026-11-12 20:44:39 +08:00