Commit Graph
37 Commits
Author SHA1 Message Date
ldm0 f88f8f142d fix(bidi): acknowledge alert closures after dismissal 2026-11-12 00:29:40 +08:00
ldm0 6c18b0ac29 fix(bidi): validate prompt policies in every capability candidate 2026-11-12 00:29:40 +08:00
ldm0 bc5a256afc fix(bidi): honor prompt handlers and preserve modal execution
Apply negotiated per-type policies through Page-owned one-shot dialog completion, including Classic-attached BiDi sessions. Publish required auxiliary Page predecessors only at a modal wait, keep normal popup completion ordering, and resolve dialogs against their captured Page owner.
2026-11-12 00:29:40 +08:00
ldm0 2f6d1e3a6e fix(automation): preserve explicit empty dialog prompt text 2026-11-12 00:29:40 +08:00
ldm0 6eea7281dd refactor(cookies): share CDP cookie SameSite projection
BiDi cookie output and CDP cookie filtering repeat projection of CDP SameSite values. Reuse one protocol adapter while preserving all labels and the default for missing or unrecognized input.
2026-11-09 22:05:57 +08:00
ldm0 479bc67dfa refactor(bidi): share string field conversion
BiDi command parsing repeats required and optional string conversion for Value and object-map inputs. Keep both typed entry points and share conversion after field lookup, preserving missing values, non-object behavior, borrows and exact invalid-argument messages.
2026-11-09 18:57:23 +08:00
ldm0 1018d9ef45 refactor(protocol): share client window wire projection
Command output and the BiDi adapter duplicate client-window JSON projection. Export the existing protocol projection for the adapter to reuse, keeping ownership, enum conversion and all wire keys and values without adding a dependency cycle.
2026-11-09 18:56:32 +08:00
ldm0 ebd5dbd2f9 refactor(bidi): share channel message envelopes
The BiDi adapter and protocol server duplicate channel-envelope insertion. Own it in the BiDi protocol implementation and reuse it from the server, preserving optional channels, object-only insertion and replacement of an existing goog:channel field.
2026-11-09 18:56:20 +08:00
ldm0 b2a45e6129 fix(webdriver): unify Classic and BiDi node references 2026-11-03 11:04:27 +08:00
ldm0 d9b2db2b17 test(bidi): validate locale extension stress-test prefixes 2026-11-01 00:05:32 +08:00
ldm0 aac5817566 fix(bidi): restart iframe lifecycle after document.open 2026-10-29 03:28:47 +08:00
ldm0 d3edac616e fix(bidi): attribute popup openers to their initiating frame 2026-10-29 03:28:47 +08:00
ldm0 a4d40e37df fix(bidi): retain popup opener in frame replay 2026-10-29 03:28:47 +08:00
ldm0 863f997a99 refactor(protocol): publish frame facts independently of CDP subscriptions
Maintain Frame identity and lifecycle facts without Page observer flags. Project
CDP notifications separately, replay existing BiDi contexts from the core index,
and capture detached subtrees before teardown. Cover the public behavior against
Chrome and update event-based fixtures to subscribe or observe renderer state.
2026-10-29 03:28:47 +08:00
ldm0 422ab481fc refactor(protocol): share frame ownership through a canonical index 2026-10-29 03:28:47 +08:00
ldm0 d4f4a27d32 refactor(protocol): unify document lifecycle facts across projections 2026-10-29 03:28:47 +08:00
ldm0 db0e4923d4 fix(bidi): isolate iframe request IDs and initialize first subscriptions 2026-10-29 03:28:47 +08:00
ldm0 678a726145 fix(bidi): preserve background iframe event ownership 2026-10-29 03:28:47 +08:00
ldm0 58fb56b56e fix(bidi): resolve child-frame cookie storage owners 2026-10-28 19:32:35 +08:00
ldm0 cb930ef5d9 fix(storage): validate BiDi cookie numeric bounds 2026-10-28 19:32:35 +08:00
ldm0 7b94c7459e fix(storage): honor BiDi cookie partition descriptors 2026-10-28 19:32:35 +08:00
ldm0 790600db9b fix(network): match serialized cookie deletion filters
Match CDP deletion filters literally, validate required fields, and resolve cookies through the owning session. Prefer a nonempty domain over the URL while preserving shared storage and WebDriver deletion semantics.
2026-10-28 03:14:09 +08:00
ldm0 e5cf779e1a fix(network): scope cookie deletion and validate partition keys 2026-10-28 03:14:09 +08:00
ldm0 593daa0fe9 fix(bidi): validate supported locales with ICU
Validate locales with the complete ICU parser and preserve the caller's original string. Reject unsupported syntax directly without custom parsing or compatibility rewrites, and cover valid locales, malformed tags, and the parser's supported range.
2026-10-26 01:15:17 +08:00
ldm0 d75c82c30a perf(fetch): share immutable request bodies with Bytes 2026-10-19 11:22:56 +08:00
ldm0 eb2d679e44 refactor(automation): name semantic commands and renderer CDP calls 2026-10-01 16:51:46 +08:00
ldm0 efe54b5fa7 fix(navigation): preserve typed cancellation causes 2026-09-28 20:11:15 +08:00
ldm0 5c1df8c224 test(protocol-bidi): split protocol tests 2026-09-27 17:04:40 +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 1933cec74f refactor(input): centralize editing and native element clicks 2026-09-23 23:06:17 +08:00
ldm0 6d08975a69 refactor(fetch): preserve response header bytes end to end
Carry raw response header values through fetch, caches, redirects,
renderer delivery, workers, and protocol records. Convert explicitly
at WebIDL and protocol text boundaries while preserving opaque bytes.

Keep legacy CacheStorage and service worker metadata readable, and
advance the HTTP cache format for raw header values.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
2026-09-23 02:02:54 +08:00
ldm0 29283fd86a fix(network): scope CDP header overrides and preserve BiDi byte values
Restore original headers on redirect while preserving current-hop overrides
for authentication retries and keeping Network event identity intact.

Preserve raw BiDi Cookie, Set-Cookie, and extra header values through page,
navigation, and worker policies. Apply CDP's last-value behavior for duplicate
request header names.

Add coverage for header bytes, redirects, authentication, and event sequences.
2026-09-21 05:37:28 +08:00
ldm0 932a7225ac refactor(network): preserve request header bytes across interception
Carry RequestHeaders through navigation, Fetch/XHR, workers, redirects and auth,
with explicit Unicode and ByteString conversions at protocol and WebIDL boundaries.
Share the raw curl header list with WebSocket transport and decode binary response
headers without UTF-8 replacement. Keep header memory charging concrete.

Cover opaque values, UTF-8 overrides, duplicates, redirect/auth continuation and
WebSocket handshakes with byte-level regression tests.
2026-09-21 03:54:12 +08:00
ldm0 3bead42808 refactor(emulation): use native process-wide ICU defaults
Remove the Date/Intl wrappers, custom date parser and per-Page replay state. Keep exclusive locale/timezone ownership in a process controller and refresh existing Page and Worker isolates through generation-bound notifications and observation boundaries, including nested Inspector pauses.

Release claims on session/target/context retirement, retain native coercion and locale matching, and cover lifecycle restoration with Rust, BiDi and process-isolated CDP regressions.
2026-09-13 01:07:35 +08:00
ldm0 d51be5bfc4 chore: fix clippy and document required checks 2026-08-13 07:07:00 +08:00
ldm0 f2a2095751 fix(navigation): stabilize sequential CDP lifecycle 2026-08-13 07:07:00 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00