Commit Graph
669 Commits
Author SHA1 Message Date
ldm0 583fde024f refactor(compression): share the Brotli backend with curl
Replace brotli2 with brotlic so stream codecs and curl use the same
brotlic-sys 0.2.2 dependency. Remove the separate brotli-sys dependency
and preserve compression quality 5 and streaming finish handling.

Validation: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings.
Tests were skipped as requested.
2026-09-09 04:01:49 +08:00
ldm0 9e668c97e1 feat(compression): support Brotli streams with brotli2
Use the safe brotli2 streaming API. Preserve staged output, backpressure,
truncation and trailing-data errors, with coverage for Window, Worker,
empty and chunked input, large flush output, and codec reclamation.

Declare fastrand as a test dependency so the large-output regression test
also builds when this change is applied directly on main.

Validation on the independent branch: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast (17215 passed, 13 skipped).
Python benchmark harness: 480 tests passed.

(cherry picked from commit d178f16726)
2026-09-09 01:53:03 +08:00
ldm0 6630605680 test(wpt): include compression streams in the semantic baseline
Include Window and DedicatedWorker compression cases, detach window tests and secure-context IDL wrappers in default enumeration. Preserve explicit global overrides and unsupported-case filters.

Record the complete 36-case compression suite using one release binary from bf8505975 and WPT db95fafd1fcef8428805e41eb5705d444e8c67ce. CLI and CDP agree: 8 pass, 28 fail; 528 subtests pass and all 146 failures are unsupported Brotli. Python harness: 488 tests pass.

(cherry picked from commit 7a817e4f36)
2026-09-09 01:53:03 +08:00
ldm0 ebe6551954 fix(layout): model flex static-position edges 2026-09-09 01:29:35 +08:00
ldm0 e19434dc9d fix(events): expose UIEvent pseudoTarget 2026-09-09 00:40:37 +08:00
ldm0 91a0c5b970 fix(webidl): generate native receiver checks in declarative bindings 2026-09-09 00:22:07 +08:00
ldm0 761e9d011b feat(performance): expose cached V8 memory snapshots 2026-09-08 21:20:06 +08:00
ldm0 40f9b0bee9 chore(release): update version to 1.1.4 2026-09-08 20:48:56 +08:00
ldm0 dd8c635281 fix(svg): expose detached SVGRect values
Implement SVGSVGElement.createSVGRect with the native SVGRect prototype, restricted float fields and receiver validation. Cover the interface and JSXGraph capability-detection contract with a Chromium-calibrated fixture.
2026-09-08 20:38:31 +08:00
ldm0 b714cdd43a fix(canvas): expose branded readonly TextMetrics width 2026-09-08 20:25:41 +08:00
ldm0 071dd555d9 fix(media): expose branded MediaDevices enumeration on the prototype 2026-09-08 20:07:49 +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 23ef197b60 feat(webrtc): implement RTCIceCandidate construction and serialization 2026-09-08 19:54:14 +08:00
ldm0 982f9fe2ff docs: add Discord community badge 2026-09-08 19:51:26 +08:00
ldm0 560dbaf743 fix(streams): implement native compression and decompression transforms 2026-09-08 17:58:01 +08:00
ldm0 36bab25612 fix(renderer): share and bound worker wake routes
Use one typed wake-route collection for deferred and live SharedWorker and ServiceWorker services. Prune closed channels on registration and broadcast so idle services do not accumulate metadata with cumulative target churn.

Keep existing synchronization and route deferred handoff through live registration to preserve pending-work wakes. Cover pruning, fanout, handoff, and lazy runtime integration.
2026-09-08 17:42:35 +08:00
ldm0 62b1600967 fix(custom-elements): guard reentrant definitions 2026-09-08 17:28:09 +08:00
ldm0 358f4e11bb fix(renderer): release retired renderer I/O drivers
Require Tokio 1.53.1 so dropping worker wake receivers releases their registered wakers even while browser-context senders remain live. This frees stopped renderer I/O drivers instead of retaining an eventpoll/eventfd pair per closed target.

Cover deferred services, live services, and deferred-to-live initialization while preserving a live peer receiver.
2026-09-08 17:14:54 +08:00
ldm0 182ba38647 test(worker): queue port messages before receiver transfer
Two postMessage calls in one parent task do not prevent the independent worker from closing the receiver between them. Queue both messages before transferring the receiver so this test actually exercises delivery of messages already queued at close.

Keep the strict first|second result and existing deadline without sleeps, retries, or production changes. Verified with 50 focused iterations, three complete worker-module iterations, and two full nextest runs.
2026-09-08 17:14:07 +08:00
ldm0 4c00e6dab6 fix(encoding): honor compatibility XML declarations 2026-09-08 16:17:11 +08:00
ldm0 669173367d fix(fullscreen): remove historical page aliases 2026-09-08 14:57:19 +08:00
ldm0 ebc4c0ea44 fix(window): make WindowProxy prototypes immutable 2026-09-08 14:43:00 +08:00
ldm0 3330e01843 fix(cssom): parse comments in unicode ranges 2026-09-08 14:41:42 +08:00
ldm0 c4f472469e fix(workers): reject extended lifetime mismatch 2026-09-08 14:41:08 +08:00
ldm0 0fb89bcd31 fix(sandbox): block disallowed JavaScript dialogs 2026-09-08 14:01:05 +08:00
ldm0 70b4b330f6 fix(canvas): implement WebGL viewport state
Preserve viewport and GL error state per HTML and Offscreen WebGL1/2 context, retain context identity on reacquisition, and expose copied typed-array queries. Add a shared Chromium-calibrated renderer/CDP regression; this does not implement GPU rasterization.
2026-09-08 13:58:48 +08:00
ldm0 acb59e7107 fix(layout): paint flex and grid items atomically 2026-09-07 22:43:22 +08:00
Donough Liu be2c6882dd test(wpt): refresh full cross-engine case lists 2026-09-07 20:45:09 +08:00
ldm0 a894b376d5 fix(window): validate scheduled callback cancellation 2026-09-07 19:51:17 +08:00
ldm0 6faf462821 fix(table): preserve fixed percentage intrinsic maxima 2026-09-07 19:40:19 +08:00
ldm0 2a5690485d fix(web-audio): expose shared factories and analyser data methods
Install node factories on BaseAudioContext and analyser reads on AnalyserNode.prototype. Validate FFT sizes and typed-array destinations, preserving entries outside the available sample range and the existing synthetic compatibility profile.

Mark AudioContext closed during cleanup and cover realtime/offline inheritance, receiver validation, buffer boundaries, and the fetch --eval flow.
2026-09-07 19:28:39 +08:00
ldm0 390d2a7f1f Update .gitignore 2026-09-07 19:28:39 +08:00
ldm0 00156496a8 fix(clipboard): implement async clipboard interfaces 2026-09-07 19:27:57 +08:00
ldm0 bf169dd74f fix(html): reflect iframe CSP attribute 2026-09-07 18:49:59 +08:00
ldm0 be6393b694 fix(layout): ignore ratios on internal table boxes 2026-09-07 18:49:41 +08:00
ldm0 d2afd104ab fix(ci): stabilize frontend reference observations 2026-09-07 18:45:51 +08:00
ldm0 b5ade93960 fix(idle): expose IdleDeadline members on prototype 2026-09-07 17:53:18 +08:00
ldm0 b381236125 fix(popovers): preserve flat-tree ancestor stacks 2026-09-07 17:20:47 +08:00
ldm0 07f8e8533a fix(layout): omit whitespace-only flex and grid items 2026-09-07 17:19:45 +08:00
ldm0 65c2a11aeb fix(location): preserve fragment for javascript URL reload 2026-09-07 17:18:56 +08:00
ldm0 1b48e8cb0c fix(dom): stop exposing removed DOMError 2026-09-07 16:24:47 +08:00
ldm0 14d615c20e fix(window): preserve dynamic child target names 2026-09-07 16:07:45 +08:00
ldm0 4887ab89cc fix(html): implement writing suggestions semantics 2026-09-07 16:06:05 +08:00
ldm0 089a899e6f fix(html): expose obsolete no-op methods 2026-09-07 14:31:28 +08:00
ldm0 f85f2fa7a1 fix(html): reflect focusgroup attributes 2026-09-07 13:26:49 +08:00
ldm0 db98c42087 fix(cdp): isolate console Error stack formatting 2026-09-07 01:48:13 +08:00
ldm0 71974b7a33 fix(renderer): capture console stacks without page hooks 2026-09-07 01:48:13 +08:00
ldm0 4d6e0373d9 fix(fetch): preserve redirects during streaming parser suspension
Attach the committed navigation response before publishing the initial phase-one-blocked Page snapshot, matching replacement Document installation.

Add renderer and CLI regressions for initial and resumed snapshots, gated response bodies, relative and absolute redirects, trace and readiness modes, and cached responses.
2026-09-06 04:19:01 +08:00
ldm0 0f27fa8522 fix(canvas): validate transform overloads and preserve color alpha 2026-09-06 04:18:23 +08:00
ldm0 3f07c186a8 fix(canvas): apply default path transforms at command time 2026-09-06 04:18:23 +08:00