Commit Graph
1977 Commits
Author SHA1 Message Date
ldm0 4e453f261f perf(layout): keep grid and table scratch outside layout boxes
Store resolved grid tracks and collapsed-border records only for actual owners in the pass-local world. Freeze the same canonical grid results and consume the same table geometry during paint.

Completes the shared scratch extraction from 96cc04d1e8, after sparse numeric cache allocation.
2026-10-17 20:06:22 +08:00
ldm0 412f6c5d38 perf(layout): allocate numeric caches only for stored boxes
Keep Taffy caches in pass-owned compact storage instead of every LayoutBox. Allocate entries on actual stores, preserve viewport and per-box invalidation, and skip stores that Taffy ignores for hidden layout.

Extracted from 96cc04d1e8 and 6ca12dfc2a without retained working sets, new layout policies, or renderer lifecycle changes.
2026-10-17 20:06:22 +08:00
ldm0 be8f3f41e5 fix(fetch): release body resolver realm roots on completion 2026-10-17 19:59:59 +08:00
ldm0 9defda14af fix(fetch): preserve worker abort reasons in response bodies 2026-10-17 19:50:57 +08:00
ldm0 0873cc83d5 fix(file-api): avoid overflow when normalizing Blob slice offsets 2026-10-17 19:50:11 +08:00
ldm0 e6cd316c27 fix(file-api): remove the initial UTF-8 BOM from Blob.text 2026-10-17 19:12:25 +08:00
ldm0 2a52e93338 chore(release): update moli to 1.1.18 v1.1.18 2026-10-17 04:53:48 +08:00
ldm0 468533ced2 fix(window): restrict named child access to same-origin documents
Select the first named child in current document-tree order, then compare its committed Document origin with the target parent. Keep opaque origin identity and tuple-origin comparisons separate from document.domain access relaxation.

Apply the property-set rule to native bindings and facade names while preserving numeric access and same-origin Document id/name fallbacks. Cover three origins, nested parents, duplicate reordering, removal, navigation, descriptors, queries, and fallback collisions through the real task executor.
2026-10-17 03:31:45 +08:00
ldm0 a8799bd66a fix(window): propagate cross-origin Location construction failures
Share fallible Location initialization across live, detached, and shared wrappers. Propagate key, Proxy, and private-slot failures through Window construction and publish cached facades only after initialization succeeds.

Cover rejected property initialization and V8 termination after a partial installation, including recovery without publishing an incomplete Location identity.
2026-10-17 03:31:45 +08:00
ldm0 67283068e3 refactor(window): dispatch cross-origin access through native tables
Replace WeakMap-backed Window surfaces with native access-check dispatch.
Keep per-Window Location identity and resolve dynamic children from the
current frame tree. Reuse the ordinary Window accessor value helpers.

Apply cross-origin descriptor and fallback rules, preserve borrowed receiver
behavior, and cover navigation, named collisions, removal, and realm teardown.
2026-10-17 03:31:45 +08:00
ldm0 b4f9a9677f refactor(webapi): add native cross-origin member declarations
Generate stateless method and accessor tables with receiver checks and native
value callbacks. Cache FunctionTemplates per isolate and use V8's per-context
function instances, without retaining target Windows or observer realms.

Cover function identity, realm prototypes, descriptors, receiver validation,
exception and termination propagation, and context collection.
2026-10-17 03:31:45 +08:00
ldm0 d4b7493259 fix(window): preserve top identity across cross-origin ancestor walks
Cross-origin child realms used caller-local top projections while following
parent reached the actual top WindowProxy. Ancestor searches could then loop
on the real top's self-parent until the watchdog terminated execution.

Use the stable top WindowProxy throughout the ancestor chain and message
endpoint resolution. Add a bounded nested-frame regression for the Adform
ancestor search observed on personalshop.ch.
2026-10-17 03:31:45 +08:00
ldm0 05a1c73fa6 refactor(fetch): unify redirect handling state 2026-10-17 01:25:36 +08:00
ldm0 91544b6694 fix(fetch): preserve cancellation across response selection
Delegate subrequest cancellation to Tokio CancellationToken while retaining
transfer-local completion arbitration and cancellation-safe adoption.

Commit buffered final response progress before delivery and materialize CORS
follow responses after dropping intermediate redirect and preflight bodies.
Cover cancellation/selection races and buffered response completion.
2026-10-17 01:25:36 +08:00
ldm0 73e12a28f4 fix(fetch): bind response progress to individual transfers
Capture a fixed progress token in each transport job and collector. Share the accepted response token with the logical request and arbitrate completion against consumer cancellation with one atomic state.

Isolate preflight and redirect cancellation, discard unused bodies after headers, and apply conditional cancellation to EventSource close. Add concurrent progress and loopback HTTP regressions.

Validation: cargo fmt --all; workspace Clippy for all targets and features with warnings denied; cargo nextest run --no-fail-fast (20,185 passed, 18 skipped).
2026-10-17 01:25:36 +08:00
ldm0 be1a37082f feat(fetch): isolate subrequest cancellation and response progress
Add hierarchical cancellation authority for redirect/preflight subrequests: parent abort reaches children, while a child abort leaves siblings and the parent running. The accepted final response can transfer completion facts to its owner without retaining the child cancellation state. Resetting a logical transfer detaches old progress. Native unit tests cover cancellation inheritance, isolation and completion selection before/after terminal notification. Integration of every browser redirect producer is separate work.
2026-10-17 01:25:36 +08:00
ldm0 b9e1ee4db5 fix(fetch): bound diagnostics after readiness failures
Limit the best-effort main-document diagnostics refresh to 250 ms so Page close can interrupt a renderer blocked in readiness JavaScript. Preserve the original readiness error and cached HTTP status when the refresh cannot complete.

Cover infinite wait scripts with an external subprocess watchdog across default, --fail and --fail-with-body modes on HTTP 200 and 403 responses.
2026-10-17 01:13:40 +08:00
ldm0 7554046965 test(fetch): bound HTTP failure CLI subprocesses 2026-10-17 01:13:40 +08:00
ldm0 0059a9b238 perf(layout): remove per-style anonymous provenance 2026-10-16 21:35:36 +08:00
ldm0 deb111966a refactor(cdp): consolidate optional owner Page access 2026-10-16 21:21:28 +08:00
ldm0 07368cea9a perf(layout): reuse prepared context for anonymous styles 2026-10-16 20:03:07 +08:00
ldm0 9279ef478a fix(trusted-types): avoid duplicate reports for transformed trusted scripts 2026-10-16 19:30:52 +08:00
ldm0 6c0e8caebc fix(cdp): complete Fetch configuration updates during navigation 2026-10-16 19:26:39 +08:00
ldm0 e391f7ec33 fix(renderer): invalidate option styles when select values change
Notify option state dependencies at the shared Host select-value commit boundary before Web reads and autofill callbacks. Cover Mock and OnDemand selected peers, ancestor :has(), required-control validity, and unchanged writes without layout.
2026-10-16 19:19:27 +08:00
ldm0 f043ba029c test(runtime): release replacement gate before asserting reservation 2026-10-16 19:18:36 +08:00
ldm0 9ee1fdf27f refactor(renderer): remove legacy print screenshot entry point 2026-10-16 17:48:09 +08:00
ldm0 d189640870 fix(file-api): unify native proxy FileReader event dispatch 2026-10-16 16:01:28 +08:00
ldm0 3c0cdbc5c0 fix(input): revalidate contenteditable targets after beforeinput
Extract the post-callback editor validation from d2f6fd8fd3. Reject edits after the callback disconnects, adopts or disables the editing target; preserve valid edits and callback exception behavior in Mock and OnDemand.
2026-10-16 12:14:15 +08:00
lanyue-llk 09a576b3c8 fix(permissions): initialize listeners through the shared event target owner 2026-10-16 12:03:06 +08:00
lanyue-llk 1a40265083 fix(permissions): give PermissionStatus inherited EventTarget behavior 2026-10-16 12:03:06 +08:00
ldm0 f117afa726 fix(file-api): bind FileReader prototype handlers with native receivers 2026-10-16 11:37:29 +08:00
ldm0 31605ab1d5 fix(events): preserve KeyboardEvent initialization semantics 2026-10-16 11:13:17 +08:00
ldm0 416b8dbf4b fix(svg): reflect animated integer attributes 2026-10-16 11:09:56 +08:00
ldm0 c28b7d5fb9 refactor(layout): consume Parley's positioned visual clusters 2026-10-16 11:00:41 +08:00
ldm0 6d20ede8d1 fix(renderer): resolve VisualViewport dimensions through its receiver Window
Extract the receiver ownership fix from realtime layout commit 387e754ae6. Preserve the current geometry policy and cover borrowed getters plus retired child viewports in Mock and OnDemand.
2026-10-16 10:59:19 +08:00
lanyue-llk 55deac6050 fix(renderer): use native prototypes for browser-created objects 2026-10-16 05:34:44 +08:00
ldm0 41a643091e fix(svg): implement filter setStdDeviation methods
Implement the SVG Gaussian blur and drop-shadow setStdDeviation methods through shared restricted-float WebIDL conversion and native brands. Convert both arguments before a single mutation of the reflected attribute and keep retained animated-number tearoffs synchronized. Cover author proxies, thrown conversions and cross-realm receivers.
2026-10-16 05:34:24 +08:00
ldm0 f181c81320 perf(layout): accumulate visual cluster positions in one pass 2026-10-16 04:55:55 +08:00
ldm0 9199bdbf22 feat(webrtc): expose non-constructible transport and RTP interfaces 2026-10-16 04:04:44 +08:00
ldm0 8399358265 feat(css): expose CSSAnimation and CSSTransition interface objects 2026-10-16 04:02:45 +08:00
lanyue-llk ed55cf34e3 test(indexeddb): isolate temporary directories across test processes 2026-10-15 22:22:11 +08:00
ldm0 622beac089 fix(renderer): reclaim collected child surface cache entries 2026-10-15 22:17:00 +08:00
ldm0 be610b8fe3 fix(renderer): read prepared intersection callback context directly 2026-10-15 21:10:50 +08:00
ldm0 dd0fedcd2a fix(renderer): construct intersection entries in the callback Realm 2026-10-15 20:49:08 +08:00
ldm0 c2d4387b82 refactor(webapi): declare receivers for shared values and event targets 2026-10-15 20:22:01 +08:00
ldm0 b676d09811 refactor(canvas): declare image and offscreen canvas receivers 2026-10-15 20:22:01 +08:00
ldm0 c9f37666b3 refactor(navigator): use declarative native receiver checks 2026-10-15 20:22:01 +08:00
ldm0 a7b623df6e refactor(webrtc): declare native receiver checks on prototypes 2026-10-15 20:22:01 +08:00
ldm0 dab843fff2 refactor(webrtc): consolidate peer connection configuration declarations 2026-10-15 20:22:01 +08:00
ldm0 b3d0d5231a fix(paint): cover large repeated raster backgrounds 2026-10-15 19:57:42 +08:00