Commit Graph
100 Commits
Author SHA1 Message Date
Donough Liu 4751262331 refactor(profile): use standard library file locking 2026-09-20 10:24:50 +08:00
Random30000 dcdca64d3e fix(profile): recover Windows lock after process exit 2026-09-20 08:22:07 +08:00
ldm0 8668a6f9fc chore(release): update version to 1.1.9 2026-09-19 18:23:13 +08:00
ldm0 984c20ec98 Fix table cell baselines and float vertical alignment 2026-09-18 16:19:13 +08:00
ldm0 d98b2255f1 Fix table cell containing blocks and measured baselines 2026-09-18 16:19:13 +08:00
ldm0 3e3f291e64 chore(release): update version to 1.1.8 2026-09-18 15:14:30 +08:00
ldm0 ad0599b6a9 fix: pin proxy endpoint resolution 2026-09-18 14:13:58 +08:00
ldm0 fcc7168925 fix: prevent DNS rebinding in network policy 2026-09-18 14:13:58 +08:00
ldm0 0f3e3acd4d fix(layout): preserve inline clearance below floats
Move inline content that cannot fit beside floats to the first suitable slot,
and retain that clearance in CSS baseline and container-height calculations.
This places GitHub's full-width Show more activity button below its timeline.

Update Taffy to e4e8f77c for float segment extension and content-slot fallback.
Preserve whitespace collapsing around out-of-flow loading hints and cover
float placement, staggered heights, and pre/nowrap behavior in regressions.
2026-09-18 12:43:03 +08:00
ldm0 b5eb73989e chore(release): update version to 1.1.7 2026-09-16 16:20:32 +08:00
ldm0 61dbf7ea3e feat(markdown): introduce moli-html2md 2026-09-16 16:07:15 +08:00
SpringCorel 48db95c18e refactor(v8): share microtask execution boundaries 2026-09-16 14:59:42 +08:00
ldm0 3f50eeb166 perf(fonts): reuse native Brotli for WOFF2 decoding 2026-09-15 15:11:52 +08:00
ldm0 8c8169bedd fix(fonts): update wuff to handle corrupt WOFF2 data
Upgrade wuff to 0.2.9 with compatible version requirements in the layout
and renderer test dependencies. Add a regression proving that corrupt
Brotli data returns a decode error and preserves an existing font.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17574 passed, 13 skipped
- Release verification: the previous SIGABRT sample renders with fallback;
  valid-font screenshots remain byte-identical
2026-09-15 15:11:52 +08:00
ldm0 4e3f174ab1 refactor(profile): simplify imports with a read-only LevelDB parser
Read Chrome localStorage snapshots through moli-leveldb-parser with
zerocopy layouts. Keep the LevelDB engine in test dependencies and port
Chromium reader scenarios with reproducible native fixtures.

Share WAL-aware SQLite snapshots and merge localStorage by origin and
UTF-16 key. Read all sources and required destination files before
replacing cookie or localStorage data.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (17573 passed, 13 skipped)
2026-09-15 15:11:52 +08:00
SpringCorel e454458be7 feat(profile): support profile import from chrome/firefox/curl 2026-09-15 15:11:52 +08:00
ldm0 284667a01a feat(emulation): apply native screen geometry and resolution 2026-09-15 14:46:31 +08:00
ldm0 92737248a6 chore(release): update version to 1.1.6 2026-09-13 06:55:25 +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 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 09257c15cf refactor(fonts): extract system font matching crate
Move Fontconfig matching, substitution policy, and the Fontique lookup cache into moli-system-fonts. Keep CSS family adaptation in moli-layout, migrate tests and fixtures, and retain the Skia notice in source comments.
2026-09-12 04:13:15 +08:00
ldm0 c1661a2c3a fix(geometry): serialize DOMMatrix numbers like ECMAScript
Source-commit: 715995c959
2026-09-11 04:24:08 +08:00
ldm0 4b3b8993bb refactor(curl): share HTTP and WebSocket connection limits
Remove the separate WebSocket CURLSH connection cache so HTTP/1, HTTP/2 and WebSocket sockets compete for the existing host and total limits. Retain bounded session admission and message memory limits.

Pin the curl fork's connect-only eviction fix so quiet upgraded sockets remain owned until their connections close. Cover queueing, deadlines, cancellation, shutdown and HTTP/2 multiplexing under a full shared connection budget.
2026-09-11 01:47:10 +08:00
ldm0 4e63c1e8c6 test(curl): cover shared HTTP and WebSocket workloads 2026-09-11 01:47:10 +08:00
ldm0 150c01436a refactor(curl): drive HTTP and WebSocket on one owner 2026-09-11 01:47:10 +08:00
ldm0 d9ce1e216b chore(curl): add opt-in WebSocket owner diagnostics 2026-09-11 01:47:10 +08:00
ldm0 10b242f855 refactor(websocket): keep a single native frame in flight
Replace unused data/control send queues, admission semaphores and public
receipts with send_frame(). The browser session owns scheduling; a single
pending frame preserves partial writes and completes independently of
receive backpressure.

Reject overlapping submissions and retain submitted frames if their
waiting futures are dropped. Cover slot reuse, cancellation, transport
failure, partial writes and sends with a full receive queue.

Update curl-rust to 608f08d, which bounds native receive prefetch and fixes
the browser receive-backpressure regression exposed during validation.

Validation: cargo fmt --all; strict workspace/all-targets/all-features
Clippy; full nextest (17318 passed, 13 skipped). The unchanged browser
receive-backpressure test passed 40 stress iterations, and 561 related
tests passed all 3 stress iterations.
2026-09-10 14:37:03 +08:00
ldm0 7ed1ce8a93 feat(websocket): inherit browser TLS credentials 2026-09-10 14:37:03 +08:00
ldm0 c252a3367d fix(websocket): retain HTTP/1.0 upgrade connections 2026-09-10 14:37:03 +08:00
ldm0 49848795c4 test(websocket): cover browser lifecycle and transport backpressure 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 7bc35983c1 feat(curl): add persistent websocket session runtime 2026-09-10 14:37:03 +08:00
ldm0 661526a6bd build: use lexmount curl-rust fork 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 114508118a fix(fetch): honor credentials mode for TLS client identities 2026-09-09 19:44:04 +08:00
ldm0 17e8fa5cf9 refactor(html): extract window features parser 2026-09-09 17:58:17 +08:00
ldm0 e16cde5767 chore(release): update version to 1.1.5 2026-09-09 17:57:37 +08:00
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 40f9b0bee9 chore(release): update version to 1.1.4 2026-09-08 20:48:56 +08:00
ldm0 560dbaf743 fix(streams): implement native compression and decompression transforms 2026-09-08 17:58:01 +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 a05b346c5b fix(canvas): correct arc geometry and bound angle normalization 2026-09-06 04:18:23 +08:00
ldm0 9464837d57 chore(release): bump version to 1.1.3 2026-09-05 19:17:56 +08:00
ldm0 2c7a46352d perf(dom): compact named index strings 2026-09-05 00:51:49 +08:00
ldm0 8c34e035d3 Preserve raw bodies in fetch JSON output 2026-09-04 15:54:47 +08:00
ldm0 0da0f1cc47 fix(cssom): decode escaped property rule names 2026-09-04 04:21:19 +08:00
ldm0 1908b8b4ea perf(response): defer redundant body text copies 2026-09-04 02:08:02 +08:00
ldm0 1f41f19455 chore(release): bump version to 1.1.2 2026-09-04 01:15:56 +08:00