Commit Graph
38 Commits
Author SHA1 Message Date
ldm0 75dafe342d fix(editing): implement native execCommand text copying
execCommand("copy") previously returned the user-activation flag without
firing an event or updating the clipboard. Dispatch trusted beforecopy and
copy events, honor cancellation, and copy the receiver document's selection.

Keep text-control selections per document across focus changes and reject
nested editing commands per native document. Share Window activation state
with navigator.userActivation so copying remains available after the
activating call and expires without clearing sticky activation. Read fresh
layout for DOM selection text, preserve preformatted whitespace, and use
the browser profile's clipboard line endings.

Add nine regression tests and correct the BiDi activation regression test.
Validate 38 copy-command cases, 38 existing native shortcut cases, and nine
activation-state cases against Chromium. The copy-event WPT and all 32
selection line-break subtests now pass, with no regressions in 65 WPT cases.
2026-09-23 09:04:55 +08:00
lanyue-llk bcf420f622 revert: undo split PR 640 merges (#734-#740) 2026-09-22 20:02:07 +08:00
mini llk cba79021aa fix(document): parse text responses with consistent decoding (#740)
* fix(parser): preserve text document MIME and encoding semantics

* fix(document): share literal text parsing across child document paths

* fix(document): construct projection parser with the public API
2026-09-22 19:50:42 +08:00
mini llk 50a4242b2e fix(input): preserve activation and navigation boundaries (#736) 2026-09-22 19:45:14 +08:00
BibekPathak 8032606abf report offline navigations as network failures, not -32000 2026-09-20 10:54:25 +08:00
BibekPathak f3ef88f6dc fix(cdp): allow loopback navigations under offline emulation 2026-09-20 10:54:25 +08:00
ldm0 e688652948 feat(cli): configure screencast intervals in milliseconds
Replace --cdp-screencast-fps with --screencast-interval. Accept positive
integer milliseconds, retain the --layout requirement, and default to
1000 ms. Pass the interval through server configuration and multiply the
Duration by everyNthFrame without converting through integer FPS.

Update CLI help and English/Chinese docs. Cover parsing, defaults, rejected
values and the removed flag, precise deadlines, and interval multiplication.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
2026-09-16 14:59:42 +08:00
SpringCorel 0d6cee5dde feat(cdp): add --cdp-screencast-fps option 2026-09-16 14:59:42 +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 391742c14b feat(websocket): use native curl transport 2026-09-10 14:37:03 +08:00
ldm0 e194c2add8 refactor(html): centralize input type states
Extract an independently mergeable topic from wpt-misc-fix at
a70a96f9d1.

Source commits:
- 05e2cd5350

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
2026-09-10 04:05:23 +08:00
ldm0 669173367d fix(fullscreen): remove historical page aliases 2026-09-08 14:57:19 +08:00
ldm0 49ea8a3e1c refactor(cdp): centralize session disposal 2026-09-04 04:39:43 +08:00
ldm0 017c53de8c build(v8): migrate Moli to V8 15.2 2026-09-03 15:17:48 +08:00
ldm0 5c9ce1adcd Remove renderer backqueries from inspector output routing 2026-09-01 19:52:16 +08:00
ldm0 2a10f8efca fix(cdp): harden document and navigation lifecycles 2026-09-01 00:12:24 +08:00
ldm0 42c4f1218a fix(cdp): isolate and route stable page targets 2026-09-01 00:12:24 +08:00
ldm0 fff356767f refactor(target): own stable pages in target hosts 2026-09-01 00:12:24 +08:00
ldm0 35ec45fca3 perf(cdp): defer default target runtime creation
Represent the published default page as a target-catalog placeholder with an explicit lifecycle. Materialize it only when an operation needs a live page owner; activate and close the placeholder directly, and create new targets without first constructing the default page.\n\nMake NavigationEngine initialization explicit so read-looking access cannot silently allocate the deferred runtime.
2026-08-31 04:31:23 +08:00
ldm0 51e110896f fix(cdp): report missing native dialog handler 2026-08-28 19:19:33 +08:00
ldm0 82c2f65fcb test(cdp): ignore stale tab attach events after navigation 2026-08-27 18:04:19 +08:00
ldm0 5f753d36bf fix(cdp): publish a real default discovery target 2026-08-27 18:04:19 +08:00
ldm0 3bca333771 refactor(cdp): model stable tab and page targets 2026-08-27 18:04:19 +08:00
ldm0 94c5baa970 fix(cdp): follow active pages in tab frontends
Expose a tab-level CDP frontend that rebinds to the selected page while direct page endpoints remain pinned to their target. Replay persistent Target configuration across rebinds and scope debugger waits to the exact attached target so existing replacement pages are not paused globally.
2026-08-27 18:04:19 +08:00
ldm0 bce06f085c fix(cdp): expose foreground popup as active surface 2026-08-27 18:04:19 +08:00
Donough Liu dc0571da43 fix(cdp): explain layout requirements for capture (#181)
* fix(cdp): explain layout requirements for capture

* test(cdp): update layout-disabled screenshot expectation
2026-08-24 17:58:27 +08:00
ldm0 40b1d0ce02 bind classic DOM references to exact page residence 2026-08-21 11:23:44 +08:00
ldm0 9800a2b091 Fix CDP execution context replay on reconnect 2026-08-19 07:05:43 +08:00
ldm0 c09656bf3b feat: implement default wheel scrolling 2026-08-18 01:04:04 +08:00
ldm0 ade8ace79e build(deps): update png to 0.18 2026-08-17 01:26:26 +08:00
ldm0 a4ca69d2cf test(webdriver): cover non-yielding script interruption 2026-08-17 00:40:39 +08:00
ldm0 9a3763405c test(devtools): exercise active-JS Main and IO routing 2026-08-17 00:40:39 +08:00
ldm0 1b5ffc8f5d refactor: add nested main inspector receiver 2026-08-17 00:40:39 +08:00
ldm0 310b886f51 refactor: split inspector IO dispatch from page owner 2026-08-17 00:40:39 +08:00
ldm0 c67b4d04f7 fix(webdriver): terminate timed-out script execution 2026-08-17 00:40:39 +08:00
ldm0 d0f09dbe6d fix(devtools): unify page inspector command ingress 2026-08-17 00:40:39 +08:00
ldm0 777edb9fa4 feat(cdp): support concurrent clients 2026-08-15 00:47:40 +08:00
ldm0 48742bb657 refactor: extract protocol server crate 2026-08-13 13:43:26 +08:00