Commit Graph
129 Commits
Author SHA1 Message Date
ldm0 312b0ffc6b feat(emulation): support worker user agent overrides 2026-09-15 16:54:51 +08:00
ldm0 357dda18e7 fix(editing): enforce maxlength with UTF-16 text offsets
Apply maxlength to user text insertion, preserve complete surrogate pairs,
and keep selection and replacement offsets in UTF-16 units. Cover CDP
input, execCommand insertText, and setRangeText.
Keep keyboard movement and deletion, including execCommand deletion, on
complete surrogate-pair boundaries while exposing UTF-16 offsets.

Source: 3be5eb5e37
2026-09-15 15:35:38 +08:00
ldm0 4d110bd787 fix(emulation): report unsupported worker user agent overrides 2026-09-15 14:46:31 +08:00
ldm0 8dfd1015b0 fix(emulation): reject unsupported device metrics modes 2026-09-15 14:46:31 +08:00
ldm0 17e961433e feat(emulation): apply native view scaling and capture viewport 2026-09-15 14:46:31 +08:00
ldm0 284667a01a feat(emulation): apply native screen geometry and resolution 2026-09-15 14:46:31 +08:00
ldm0 f6b2e4a0ef feat(emulation): support native automation overrides 2026-09-15 14:46:31 +08:00
ldm0 6c0e1a64dc feat(emulation): override native Data Saver queries 2026-09-15 14:46:31 +08:00
ldm0 0013b7925c feat(emulation): override native hardware concurrency 2026-09-15 14:46:31 +08:00
ldm0 46d5abcae3 feat(emulation): support default background color overrides 2026-09-15 14:46:31 +08:00
ldm0 af95ed7dcc test(emulation): await media query change delivery 2026-09-15 14:46:31 +08:00
ldm0 4a0a8304a7 feat(emulation): support reduced transparency preferences 2026-09-15 14:46:31 +08:00
ldm0 538e35f96f refactor(emulation): simplify document creation inputs 2026-09-15 14:46:31 +08:00
ldm0 4acde632d1 refactor(emulation): deliver coherent native surface events 2026-09-15 14:46:31 +08:00
ldm0 c965967906 refactor(emulation): read viewport state natively 2026-09-15 14:46:31 +08:00
ldm0 73f2e785ea fix(emulation): reject unavailable throttling modes 2026-09-15 14:46:31 +08:00
ldm0 4bef2b6dfd fix(emulation): preserve device metric reset semantics 2026-09-15 14:46:31 +08:00
ldm0 cb12920334 fix(emulation): preserve and validate max touch points 2026-09-15 14:46:31 +08:00
ldm0 f911b83d39 fix(emulation): apply focus overrides to loaded targets 2026-09-15 14:46:31 +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