Commit Graph
3334 Commits
Author SHA1 Message Date
ldm0 031baf0669 fix(runtime): avoid rescanning user values in dispatcher completion 2026-11-13 11:54:15 +08:00
ldm0 0db3bef895 fix(runtime): unify response handle and object group registration 2026-11-13 04:02:48 +08:00
ldm0 720730cb5d perf(inspector): scan deeply serialized responses in linear time 2026-11-13 04:02:48 +08:00
ldm0 23cd62e889 bench(inspector): cover real V8 deep serialization 2026-11-13 04:02:48 +08:00
ldm0 76e81db58a bench(inspector): measure Runtime handle projection memory and time 2026-11-13 02:44:49 +08:00
ldm0 741cddd01a perf(runtime): register response handles without materializing values 2026-11-13 02:44:49 +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