Commit Graph
113 Commits
Author SHA1 Message Date
ldm0 62be128961 fix(fetch): preserve received HTTP status text
Carry the wire reason phrase through buffered and streaming transport,
response conversion, cache, and Window/Worker Fetch and XHR delivery.
Preserve explicitly empty messages, including HTTP/2 and HTTP/3, and
Latin-1 reason bytes while retaining existing synthetic defaults.

Bump cache metadata to version 4 and keep the original status message
when revalidating an entity with a 304 response. Cover transport modes,
cache reloads, response conversions, and streaming XHR state changes.
2026-09-14 17:43:46 +08:00
ldm0 603480d2ef fix(history): preserve queued same-document traversal steps
Queue each History back/forward/go delta as its own authorized traversal task and resolve the destination when that task runs. Keep the committed traversal position separate from synchronous history mutations, and use the canonical Window history for isolated-world calls. Preserve Navigation API result-bearing traversal behavior.

Cover consecutive and opposite deltas, initially out-of-range requests, synchronous pushState, canceled and reentrant traversals, child documents, and isolated worlds. Update old coalescing assertions and wait for actual browser-owned history commits in protocol tests.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (17584 passed, 13 skipped). Overlapping navigation WPT improves from 16/22 to 18/22, with both new cases passing all 8 subtests. Navigation API comparison preserves all 385 previously passing cases out of 432.

CDP smoke: 41/43 passed. The dom-input FileList upload failure reproduces on the parent binary; puppeteer could not start because Node is missing locally. Artifacts: target/wpt-history-traversal-20260908-lcpQpn/{before,confirmed,navigation-after,cdp,cdp-before}.
2026-09-14 15:06:19 +08:00
ldm0 e494754df7 fix(editing): enforce maxlength for inserted text 2026-09-14 13:33:58 +08:00
ldm0 53f790c13a fix(fetch): require browser origins and unify SW request state
Keep request origin independent of URL resolution and referrer context,
including local blob fetches and inherited or sandboxed srcdoc documents.
Reject missing browser origins at the resource client boundary and retain
one Request across Service Worker redirects and network fallback.

Cover dispatch rejection, wire Origin/Cookie headers, memory-cache
partitioning and preserved Service Worker request metadata.

Validation: workspace fmt and Clippy passed; Nextest passed 17,517 tests
with 13 existing skips. Renderer test debug symbols were disabled to fit
available build memory; tests and debug assertions were unchanged.
2026-09-13 16:14:50 +08:00
ldm0 2d249b069c refactor(emulation): coalesce process environment notifications
Publish typed invalidation flags under the environment lock and wake isolate owners only after releasing it. Bound page and worker notification work while preserving command FIFO, teardown safety, and observation ordering.

Remove stale wrapper-era dependencies and terminology, and add mailbox race and CDP burst regressions.
2026-09-13 05:55:27 +08:00
ldm0 c1412b76b9 fix(fetch): preserve redirect response provenance
Distinguish network, service worker, and browser-internal redirects so synthetic responses are not subjected to network CORS checks. Preserve every hop for redirect taint and Origin validation, including across navigation response conversions.

Add seven cross-origin service worker script scenarios and guard CORS checks for cached network redirects without ExtraInfo. The new integration regression fails before the fix and passes afterward.

Validated with cargo fmt --all, workspace Clippy across all targets and features with warnings denied, and cargo nextest run --no-fail-fast: 17459 passed, 13 skipped. Used one build job for the full test run after a parallel-build rustc process was killed.
2026-09-13 04:46:51 +08:00
ldm0 19e5667fe3 refactor(emulation): notify isolate owners without environment generations 2026-09-13 01:07:35 +08:00
ldm0 63143f6283 refactor(emulation): tighten process environment ownership
Make process environment owners non-cloneable RAII authorities, share session admission while preserving failed and no-op outcomes, and consolidate duplicate isolate-entry handling. Keep read-only owner queries side-effect-free and add lifecycle regressions.
2026-09-13 01:07:35 +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 ae7e1067e6 fix(emulation): preserve locale and timezone semantics 2026-09-13 01:07:35 +08:00
ldm0 c252a3367d fix(websocket): retain HTTP/1.0 upgrade connections 2026-09-10 14:37:03 +08:00
ldm0 391742c14b feat(websocket): use native curl transport 2026-09-10 14:37:03 +08:00
ldm0 a70a96f9d1 fix(cdp): synchronize Navigator emulation through native state 2026-09-09 05:02:43 +08:00
ldm0 c0d916ae8e fix(console): avoid extra page code during log capture 2026-09-09 04:07:35 +08:00
ldm0 66563c6399 fix(input): preserve CDP keypress and raw keydown semantics
Separate combined keyDown character input from rawKeyDown at CDP admission. Dispatch a trusted, cancelable keypress before editing and re-resolve focus after keydown, within the same renderer input turn.

Cover input, textarea, and contenteditable event order, cancellation, typed character metadata, and focus changes. Add a Chromium-calibrated Playwright/raw-CDP smoke while preserving Input.insertText semantics.
2026-09-08 20:07:16 +08:00
ldm0 669173367d fix(fullscreen): remove historical page aliases 2026-09-08 14:57:19 +08:00
ldm0 db98c42087 fix(cdp): isolate console Error stack formatting 2026-09-07 01:48:13 +08:00
ldm0 d703d22948 perf(cdp): retire observed network delivery outputs 2026-09-05 00:16:38 +08:00
ldm0 5abfecdbfd perf(cdp): share staged network lifecycle facts 2026-09-05 00:16:38 +08:00
ldm0 88fe258397 fix(cdp): refresh resident target network policy 2026-09-04 04:39:43 +08:00
ldm0 19a59d0d6e refactor(cdp): keep navigation engines with target owners 2026-09-04 04:39:43 +08:00
ldm0 9ccd9d0cc6 refactor(cdp): separate emulation session and target state 2026-09-04 04:39:43 +08:00
ldm0 cb8c7bef66 refactor(cdp): require committed session routes 2026-09-04 04:39:43 +08:00
ldm0 49ea8a3e1c refactor(cdp): centralize session disposal 2026-09-04 04:39:43 +08:00
ldm0 baeab149b9 refactor(cdp): remove ambiguous owner routing adapters 2026-09-04 04:39:43 +08:00
ldm0 963de5c520 refactor(cdp): name stable page target selection 2026-09-04 04:39:43 +08:00
ldm0 64d9a9fce7 refactor(cdp): centralize target session disposal 2026-09-04 04:39:43 +08:00
ldm0 c53c5a0b38 refactor(cdp): unify page session identity 2026-09-04 04:39:43 +08:00
ldm0 a9d01bf345 refactor(cdp): retain exact page owners through deferred work 2026-09-04 04:39:43 +08:00
ldm0 567c4a0b9a refactor(cdp): remove page host state facade 2026-09-04 04:39:43 +08:00
ldm0 439148c73e refactor(cdp): route deferred page effects explicitly 2026-09-04 04:39:43 +08:00
ldm0 fa122fd517 refactor(cdp): freeze navigation command owners 2026-09-04 04:39:43 +08:00
ldm0 7ee196a868 refactor(cdp): route target-scoped page policy explicitly 2026-09-04 04:39:43 +08:00
ldm0 c14280e086 refactor(cdp): centralize page session ownership 2026-09-04 04:39:43 +08:00
ldm0 65ad88a259 refactor(cdp): unify page target owner routing 2026-09-04 04:39:43 +08:00
ldm0 1908b8b4ea perf(response): defer redundant body text copies 2026-09-04 02:08:02 +08:00
ldm0 017c53de8c build(v8): migrate Moli to V8 15.2 2026-09-03 15:17:48 +08:00
BibekPathak 91ad8c5fd4 fix(cdp): list SameSite=None; Secure cookies for loopback http URLs 2026-09-02 19:41:22 +08:00
ldm0 5c9ce1adcd Remove renderer backqueries from inspector output routing 2026-09-01 19:52:16 +08:00
ldm0 81c161ee66 refactor(cdp): stabilize target session routes 2026-09-01 04:34:49 +08:00
ldm0 64a899ff77 refactor(cdp): remove hidden test page target 2026-09-01 04:34:49 +08:00
ldm0 e5adfb4120 fix(cdp): align multi-page policy with Chromium 2026-09-01 00:12:24 +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 c391bfdd38 refactor(cdp): route page work through explicit owners 2026-09-01 00:12:24 +08:00
ldm0 42ca2882d2 fix(cdp): aggregate target policy by session 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
BibekPathak 7f6c7634b6 fix(network): capture main-document POST bodies across Fetch interception 2026-08-28 01:39:47 +08:00