Commit Graph
3332 Commits
Author SHA1 Message Date
ldm0 4410c019cb test(protocol): cover prompt admission and calibrated wire ordering 2026-11-13 14:29:09 +08:00
ldm0 232a2659b1 fix(protocol): keep existing dialogs handleable during navigation 2026-11-13 14:28:45 +08:00
ldm0 89322506d9 test(protocol): cover pipelined progress and local ordering over real sockets 2026-11-13 03:37:52 +08:00
ldm0 dd3bb2486c fix(protocol): keep command progress local to sessions and input owners
Give BiDi commands independent admission, Native and navigation waits instead
of retaining the socket turn or a single Runtime slot. Share input state by
top-level host, retain its performActions queue, and allow release/control work
during pauses without applying future input state early.

Keep CDP navigation queues local to their sessions, project independent output
while another page is modal, and recover Worker network ownership from its
original session. Preserve exact host bindings, renderer/load predecessors,
original Runtime results and actual realm-retirement ordering.

Validate with cargo fmt --all, workspace Clippy (all targets/features, warnings
denied), and cargo nextest run --no-fail-fast: 23,068 passed, 20 existing skips.
2026-11-13 03:27:20 +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
ldm0 12dc4ba261 fix(protocol): preserve inserted Native stream successor order 2026-11-12 20:44:39 +08:00
ldm0 accf74494a refactor(protocol): remove redundant permission turns 2026-11-12 20:44:39 +08:00
ldm0 5c7a045b1b refactor(protocol): limit response barriers to explicit Inspector messages 2026-11-12 20:44:39 +08:00
ldm0 7b73e7408e refactor(cdp): centralize initial document adoption requirements 2026-11-12 20:44:39 +08:00
ldm0 c7f75ceb7b fix(protocol): preserve native insertion order in source publications 2026-11-12 20:44:39 +08:00