Commit Graph
61 Commits
Author SHA1 Message Date
ldm0 32b2658f3e refactor(protocol): remove the obsolete deferred document load pipeline 2026-09-23 06:31:56 +08:00
ldm0 7be1fd9b8c perf(browser): batch navigation observations and admission reads
Read navigation responses and commit metadata in one owner turn, and resolve
inherited request headers together. Reuse existing Context capabilities and
exact PageAgentHost sessions; remove unused background subscriptions and idle
followup dialog reads. Preserve physical handle validation and output budgets.

Gate the three delayed Worker cancellation fixtures on actual requests and
transport completion, retaining their semantic assertions and checking joins.

Validated with root fmt, strict workspace Clippy and nextest (19530 passed,
13 configured skips; 91 expected panic pairs unchanged), 60 cancellation runs,
48 CDP groups/536 scenarios, 165 WebDriver cases and shared-page lifecycle.
Pinned local comparisons reduce owner calls from ~18.8k to ~12k; the report
retains the remaining main-relative latency and concurrent Slack open items.
2026-09-23 01:58:17 +08:00
ldm0 30721b1a21 fix(runtime): resume native output after observer shutdown
Keep live Contexts and Page/Worker streams after their protocol transport
closes. Replacement observers start at the existing producer sequence and
receive native state; frozen output and cursor leases from the old observer
cannot cross into the new FIFO. Retired streams remain closed, initial binding
retains its replay contract, and transport budgets are unchanged.

Validate with fmt, strict workspace Clippy, 35 focused and 481 related tests
across three zero-retry iterations, and full nextest (19528 passed, 13
configured skips). Cover websocket owner restart, all Worker stream families,
ServiceWorker recovery without a Window, delayed output/fences and overload.
2026-09-22 23:21:34 +08:00
ldm0 9f339f418d refactor(runtime): settle native output and bound retained history
Settle native resource completion before publishing script results. Bound Page/Worker report histories, remove cumulative output projection and redundant owner queries, and observe native Document retirement. Add reproducible acceptance probes and record unresolved overload and performance limits.
2026-09-22 23:21:34 +08:00
ldm0 43503a0f5d refactor(protocol): finish native producer and command ownership boundaries
Stream remaining original loaders, synchronous XHR, manifest and popup resources with their real identities and metadata. Remove obsolete cross-layer ownership entries and preserve exact command routes for error replies.
2026-09-22 23:21:34 +08:00
ldm0 9a772a23d9 refactor(network): unify Context execution for CSP, preflight and authentication
Replace the abandoned publication-flag migrations with the original request transfer and one ServiceWorker result channel. Preserve admitted bootstrap policy and publish physical CSP, preflight and final authentication phases without buffered auth-only branches.
2026-09-22 23:21:33 +08:00
ldm0 78d4158a01 refactor(worker): own main scripts and preflight transfers in Context
Route dedicated/shared/service main scripts and updates through Context-owned loads. Keep preflight identity and rejected response bodies through retirement and cancellation.
2026-09-22 23:21:33 +08:00
ldm0 869c3d07ae refactor(runtime): own Worker lanes and shared target publication
Own Worker service lanes and late binding, bound retained Worker output and remove redundant identity/event mirrors. Publish actual target creation and retirement to every frontend independently of command origin or discovery.
2026-09-22 23:21:33 +08:00
ldm0 258591383d refactor(worker): publish native fetch, XHR and script transfers
Move Worker fetch, synchronous/asynchronous XHR, script imports and CSP reports onto request-owned native transfers. Stream filtered responses and preserve cancellation, partial bodies, shared-cache consumers and retirement ordering.
2026-09-22 23:21:33 +08:00
ldm0 7138fafbc0 refactor(browser): commit native resource facts and Worker fetch decisions
Commit document, child and Worker network facts at BrowserOwner while retaining renderer FIFO and rejected responses. Recover Worker observation at readiness and bind fetch decisions and initial surfaces to native ownership.
2026-09-22 23:21:33 +08:00
ldm0 104f1a93d0 refactor(browser): own Worker lifecycles and inspection readiness
Admit dedicated, nested, shared and service Workers natively. Bind inspection at readiness, preserve bootstrap ordering and issue replay, and keep Runtime admission and failed navigation retirement tied to native state.
2026-09-22 23:21:33 +08:00
ldm0 5d26120f4e refactor(browser): drive lifecycle and navigation independently of observers
Publish native download, lifecycle, dialog and popup facts. Own initial and cross-document navigation execution and decisions; remove staged capabilities, caller-driven fallback and legacy navigation completion paths.
2026-09-22 23:21:33 +08:00
ldm0 eb450764bb refactor(protocol): share native Browser lifetime across frontends
Project Context, WebContents and Document occurrences across CDP, BiDi and Classic. Share the protocol owner, preserve navigation continuations across adapter turns, and join Worker/resource work at its native shutdown boundary.
2026-09-22 23:21:33 +08:00
ldm0 4300adeec3 refactor(browser): move physical state behind BrowserService handles
Bind document commands, resource work, Worker controls, downloads and retirement to exact native handles. Remove Context-wide mirrors and transfer physical ownership to the independent Core service.
2026-09-22 23:21:33 +08:00
ldm0 caec5956ad refactor(devtools): bind layered dispatch to sessions and projection fences
Make AgentHost dispatch and session ownership explicit. Gate commands on the committed Document projection instead of treating protocol completion as native navigation authority.
2026-09-22 23:21:33 +08:00
ldm0 aa6951109d refactor(browser): admit and commit native navigation transactions
Construct and commit initial and successor Documents through WebContents. Preserve exact cancellation, Context cache and loading policy across response preparation, authentication and interception, and retire failed attempts without destroying the current Document.
2026-09-22 23:21:33 +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
ldm0 5b9a21bc25 fix(navigation): honor input disposition for popup activation
Carry foreground/background selection through renderer and protocol so auxiliary targets are activated independently of navigation. Match trusted input policy for platform modifiers, Shift, Alt, and window.open while preventing synthetic modified clicks from creating tab-unders.
2026-08-27 18:04:19 +08:00
ldm0 9c49d2140b deps(websocket): unify webpki-roots on 1.x
Stripped moli: 123,520,056 -> 123,515,960 bytes (-4,096 bytes, -0.0033%).
2026-08-26 03:29:25 +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 d292cc07b9 refactor(cdp): remove connection admission limits 2026-08-23 17:55:06 +08:00
ldm0 7608292c78 fix(renderer): stabilize style observations and screencast polling 2026-08-22 19:44:54 +08:00
ldm0 ca91a5ed5d refactor: make transient identity allocation checked 2026-08-21 18:22:47 +08:00
ldm0 3ad7dfda80 refactor(renderer): make lifecycle document ids opaque 2026-08-21 11:23:44 +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