Commit Graph
1700 Commits
Author SHA1 Message Date
kevin c76e53d9c0 test(cdp): declare redirect expectations explicitly 2026-10-08 16:34:59 +08:00
kevin 1f0c3c9d7a fix(layout): invalidate adopted stylesheet geometry 2026-10-08 16:34:59 +08:00
kevin 0fec2220dd fix(webdriver): preserve activation boundaries and network cleanup 2026-10-08 16:34:59 +08:00
kevin b731d64154 fix(browser): address activation and document review regressions 2026-10-08 16:34:59 +08:00
kevin fba5a4253f fix(network): project redirected request metadata 2026-10-08 11:34:21 +08:00
kevin f9b3ce7897 fix(layout): exclude collapsed line-end spaces from overflow 2026-10-08 11:34:21 +08:00
kevin 8168e068c3 fix(browser): address benchmark-discovered protocol and rendering failures 2026-10-08 11:34:04 +08:00
ldm0 b21b4f0561 refactor(runtime): calculate wait deadlines from an explicit clock
Pass the caller's monotonic instant into deadline calculation. Production callers capture Instant::now() at the wait boundary; timeout validation retains existing range errors. Tests compare the 1ms deadline against the same captured anchor, avoiding a second clock read between calculation and the assertion.
2026-10-08 01:56:54 +08:00
ldm0 08983c68af feat(file-api): snapshot blob URL objects with creator access keys 2026-10-07 23:41:12 +08:00
ldm0 eaaf6f2dbf fix(cookie-cache): allow non-secure Netscape cookies over HTTPS v1.1.15 2026-10-07 19:00:16 +08:00
ldm0 b1a1f73d90 refactor(cssom): share public computed property enumeration 2026-10-07 18:56:02 +08:00
ldm0 87652d4369 refactor(dom): share native Node argument conversion 2026-10-07 18:53:12 +08:00
ldm0 3edd4b0aa9 refactor(wpt): consolidate common redirect fixtures 2026-10-07 18:51:53 +08:00
ldm0 bde57a391a refactor(fetch): share effective referrer policy selection 2026-10-07 18:49:51 +08:00
ldm0 605ce23de3 refactor(indexeddb): centralize connection retirement completion 2026-10-07 18:48:34 +08:00
ldm0 8c1c35df5a chore(release): update version to 1.1.15 2026-10-07 18:47:14 +08:00
ldm0 926860a30c refactor(svg): synchronize transform list members through one path 2026-10-07 18:41:02 +08:00
ldm0 6ef92ff113 test(fetch): accept stable and nightly owner panic frame formats 2026-10-07 18:39:33 +08:00
ldm0 561edec134 build: refresh Parley fork to d0f5452
Pin Parley and Fontique to the reviewed fork with clarified bidi contracts, a separate first-style line-height compatibility commit, and transparent-marker benchmarks. Update the same-source workspace crates in Cargo.lock without changing package versions or other dependencies.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (19,676 passed, 16 skipped).
2026-10-07 18:34:42 +08:00
ldm0 b5f4e788aa build: update Parley to the PR1-based inline object fork
Pin Parley and Fontique to 813c8c1120c6dee61f838f2cc2ec4efedc08b9ea on fix/inline-object-bidi-rebased. The fork contains the three inline-box bidi PR commits followed by the transparent marker, visual edge placement and host embolden extensions. Keep the original fix/inline-object-bidi branch intact.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (19676 passed, 16 skipped).
2026-10-07 18:34:42 +08:00
ldm0 ce08ab6c54 test(stylesheet): gate alternate stylesheet on parser script observation 2026-10-07 18:23:32 +08:00
ldm0 00e18d6aef build(deps): update indexmap to 2.14.2 2026-10-07 18:23:02 +08:00
ldm0 9d16dc1c65 build(deps): update rusqlite and hashlink 2026-10-07 18:23:02 +08:00
ldm0 443ff674e3 fix(events): convert and brand ErrorEvent payloads 2026-10-07 18:14:36 +08:00
ldm0 d4fa098ac2 fix(worker): route string code generation through shared CSP checks 2026-10-07 17:57:15 +08:00
ldm0 0f2892533f fix(cdp): bound renderer navigation future stack usage 2026-10-07 17:53:16 +08:00
ldm0 26a1aa7329 test(scripts): gate blocking stylesheet on inline module execution 2026-10-07 16:05:48 +08:00
ldm0 3f6a8f470d test(history): snapshot child traversal events after completion 2026-10-07 16:05:33 +08:00
ldm0 991175f273 fix(dom): capture native exception stacks without author lookup 2026-10-07 16:05:12 +08:00
ldm0 89bb9142dd test(navigation): keep unload deferred after rejected commits 2026-10-07 16:03:05 +08:00
ldm0 2110db6ae6 fix(svg): normalize length unit case in scalar and list parsing 2026-10-07 16:02:34 +08:00
ldm0 62bbb468be fix(url): return colon protocol for invalid hyperlinks 2026-10-07 15:50:26 +08:00
ldm0 9bafc157b4 fix(dom): read exception slots from registered native proxy targets 2026-10-07 15:26:24 +08:00
ldm0 846f1f6c1b refactor(geometry): validate DOMRect receivers through native bindings 2026-10-07 15:16:22 +08:00
ldm0 f6ba3a43b0 refactor(window): reuse native replaceable property getters 2026-10-07 15:15:30 +08:00
ldm0 ae2e7ca54d fix(storage): build name arrays without inherited numeric setters 2026-10-07 14:22:05 +08:00
ldm0 fea8bba3d2 fix(streams): avoid inherited setters in readable algorithm arrays 2026-10-07 14:21:22 +08:00
ldm0 bc215b9fa8 refactor(fetch): share Body MIME extraction 2026-10-07 14:13:26 +08:00
ldm0 8bb9c18f22 fix(forms): finalize clean input values after parser attributes 2026-10-07 14:11:22 +08:00
ldm0 67a04fc1cc refactor(file-api): share owner object URL removal 2026-10-07 14:05:49 +08:00
ldm0 3c9cef8b41 fix(svg): serialize large finite numbers without integer saturation 2026-10-07 14:01:29 +08:00
ldm0 6d9125f3fb fix(encoding): count TextEncoder progress in UTF-16 units 2026-10-07 14:00:38 +08:00
ldm0 7501924e6a fix(messaging): preserve native MessageEvent initialization 2026-10-07 03:38:24 +08:00
ldm0 5fdac079e8 perf(parser): skip V8 scope for empty post-step work
Check for pending parser post-step work before entering the default V8 context. Ordinary character tokens avoid constructing a scope when there are no runtime followups.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)
2026-10-07 03:28:07 +08:00
ldm0 d4a6234ca0 perf(runtime): skip empty style mutation followups
Handle empty CSP input in a small inline entry and delegate nonempty
batches to a separate function. The mutation finisher only checks
whether the DOM changed before invoking CSP followups.

Skip processing empty stylesheet owner changes at the mutation finisher.
Continue applying pending stylesheet CSS projections and slotchange events.

A/B against the previous caller-side CSP guard on the resulting branch
(fixed local WeChat HTML; release; JS/CSS/subframes disabled; 200 balanced
randomized pairs) measured 142.39 -> 141.29 ms.
Paired saving: 0.34 ms; 95% bootstrap CI:
[-0.87, 1.57] ms. The confidence interval includes zero; no resolved performance gain.
All 400 measured Markdown outputs were identical.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)
2026-10-07 03:28:07 +08:00
ldm0 62716f0997 perf(runtime): defer meta-refresh base URL lookup
Resolve the document base URL only after a mutation produces meta-refresh candidates. Ordinary text mutations avoid repeating the URL query and clone.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)
2026-10-07 03:28:07 +08:00
ldm0 d540bf4a66 perf(dom): avoid allocation for single-owner mutation records
Collect unique owner documents in a SmallVec with inline capacity one.
The common parser mutation avoids heap allocation, and batches retain
each document's first-occurrence notification order.

Follow-up A/B against the previous Option + Vec implementation on the
resulting branch (fixed local WeChat HTML; release; JS/CSS/subframes
disabled; 200 balanced randomized pairs) measured 141.49 -> 142.85 ms.
The paired increase was 1.22 ms, with a 95% bootstrap CI of
[-0.14, 3.11] ms: no measured speedup from this refactor.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)
2026-10-07 03:28:07 +08:00
ldm0 07276a671f perf(style): avoid allocating single-document mutation groups
Handle an ordinary single-node mutation inside the grouping function,
returning a SmallVec group that borrows the original effect slice. Keep
the entry small and inline, and use a batch helper for owned groups and
subtree splitting across documents. Iterate groups by reference.

The invalidation caller consumes one uniform grouping result; a single
node mutation avoids cloning effects and allocating grouping containers.

Record the isolated borrowing A/B conditions, timings, and confidence
intervals beside the single-effect fast path.

Validation of the resulting branch:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)
2026-10-07 03:28:07 +08:00
ldm0 3e3d4d3e5e perf(style): inline single effects during DOM mutation conversion
Return SmallVec<[StyleMutationEffect; 1]> from from_dom_mutation_effects.
Handle a pure single character-data update inside the converter before
constructing the deduplication set. Keep the notification call uniform;
batches preserve their existing order and deduplication.

Cover repeated text updates, :empty styles, and MutationObserver old values
in live and windowless documents.

Validation of the resulting branch:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (19,490 passed, 16 skipped)

Performance vs parent b75de5c66f (fixed local WeChat HTML, release,
JS/CSS/subframes disabled, 100 balanced randomized pairs):
Wall median 180.575 -> 165.316 ms (-8.45%). Paired median saving
13.885 ms; bootstrap 95% CI [12.364, 19.486] ms. The code tree matches
the previously validated and measured SmallVec version 84c5a81cca.
2026-10-07 03:28:07 +08:00
ldm0 ec74985139 fix(renderer): align tests with navigation and fetch APIs 2026-10-07 02:12:32 +08:00