Commit Graph
665 Commits
Author SHA1 Message Date
ldm0 69e53ec34c fix(layout): derive directional scroll geometry from fragment bounds
Preserve pre-relative in-flow positions and used margins in the Taffy layout result, keeping alignment bounds separate from transformed visual overflow. Resolve reachable regions and signed scroll ranges once for scrollbar feedback and frozen CSSOM/paint projection. Retain fixed descendants of transformed containing blocks in their overflow graph.

Cover writing directions, reverse flex packing, relative and transformed fragments, collapsing and negative margins, zero-area bounds, fixed containing blocks, and removal after capture. Chromium-checked release probes match 1668 geometry and 180 pixel checks; overflow focus gains 10 cases while the previous 306-case focus is unchanged. Full workspace fmt, Clippy and 17193 Nextest tests pass.
2026-09-09 10:31:33 +08:00
ldm0 bac2eff3e1 fix(layout): consume logical grid tracks and fragment geometry 2026-09-09 09:11:14 +08:00
ldm0 c2be8d28fb test(renderer): make module owner replacement fixture deterministic 2026-09-09 09:11:10 +08:00
ldm0 5aa0de5b12 fix(layout): preserve first and last baseline alignment
Use Taffy's shared baseline contexts and final grid-fragment alignment without leaking intrinsic shims into used CSS margins. Preserve baseline preference across the Stylo adapter and positioned alignment fallbacks. Require compatible atomic inline baselines and measured fragments for parent line sizing.

Add font-independent renderer regressions for both preferences, mixed groups, margins, wrapped fragments, spanning tracks, synthesized-baseline cycles and absolute fallbacks. Extend the writing-mode matrix without replacing its first-baseline expectations.
2026-09-09 07:07:21 +08:00
ldm0 921ff60061 test(protocol): order child frame setup before fetch interception
Start iframe navigation only after Page and Runtime observation is ready, match the committed session/frame/URL through real scheduler events, then enable interception for the subresource under test. This prevents the setup helper from discarding an early frameNavigated event and keeps preparation navigation outside Fetch interception.

The unmodified exact test failed once in 10 stress iterations. The fixed test passes 30 iterations, its 36-test module passes 10 iterations, and required fmt, workspace Clippy, and all 17184 Nextest tests pass.
2026-09-09 05:06:50 +08:00
ldm0 ede8a90a58 fix(layout): preserve flex baseline semantics across logical flows
Use typed alphabetic/central baseline context from Stylo and preserve sideways writing modes at the Taffy boundary. Pin Taffy's independent baseline-sharing groups, physical first/last baseline export, and stretch fallback fix.

Add 324 Chromium-backed geometry and pixel checks, retaining static-margin and reversed-inset regressions. Required fmt, workspace Clippy and all 17184 Nextest tests pass; focused release WPT comparison improves 35 to 47 of 96 cases without pass-to-fail regressions.
2026-09-09 04:45:31 +08:00
ldm0 428c5bd2f4 fix(layout): preserve physical insets in reversed flex scrollers 2026-09-09 03:15:34 +08:00
ldm0 0b8e860d05 fix(layout): share logical flow and positioned margin-box contracts
Use Taffy's logical block formatting context instead of repairing vertical block coordinates after layout. Share absolute margin and static-edge resolution across Taffy and Moli, with cross-axis overflow safety applied in the actual containing block.

Keep flow-relative start/self-start distinct from flex-start under wrap-reverse. Cover 108 logical block and 117 flex margin-box geometries and pixels with Chromium-checked fixtures; preserve all existing margin regressions using the shared resolver.
2026-09-09 02:31:09 +08:00
ldm0 12d6791709 fix(layout): share document fonts with CSS metric resolution
Resolve ch, ic, ex and cap from selected font tables instead of synthetic family metrics. Share font selection and registrations with Parley while keeping layout scratch state separate, and invalidate styles from font resource ownership without replacing cached geometry.

Cover variable axes, vertical advances, unicode-range fallback and font publication/removal with deterministic fixtures. Update the existing Stylo and Parley pins for font metric input fixes.
2026-09-09 00:31:47 +08:00
ldm0 72616c68d6 fix(layout): commit deferred floats after resolving CSS line geometry
Stage inline floats in source order until their originating line is complete. Query fit geometry without consuming collapsible spaces, include adjacent closing edges and indentation, and avoid placing a revisited placeholder twice.

Expose incremental Parley line views and a caller-resolved block advance so CSS vertical alignment and phantom lines are resolved before float placement and exclusion-slot selection. Reuse the same single-line resolver for final fragment geometry.

Add 68 Chromium-checked geometry cases at two font sizes, covering float sides, bidi directions, clearance, closing edges, indentation, atomic content and raised/lowered lines. Keep Parley pinned to a published git revision.
2026-09-08 22:58:50 +08:00
ldm0 67f59ba757 fix(layout): preserve source geometry when collapsing line-edge whitespace
Resolve line-edge whitespace, intrinsic advances and justification in Parley line results while retaining shaped source clusters. Keep zero-width source fragments for Range queries without adding paint, inline-box or scrollable overflow geometry.

Cover wrapping, bidi, reflow, font sizes, positioned descendants and collapsed Range positions. Validate with full workspace Clippy, 17171 Nextest tests and release Moli/Chromium comparisons; position-absolute-in-inline-004 improves from 4000 differing pixels to zero with no other change across 43 focus WPT cases.
2026-09-08 21:40:15 +08:00
ldm0 ba6413833b fix(layout): preserve non-atomic inline boundaries and signed edges
Use Parley's typed opening, closing, and empty-text boundaries for coherent wrapping and intrinsic sizing. Keep signed inline margins separate from owned border-edge geometry. Add normalization and Chromium-checked layout regressions at two font sizes.
2026-09-08 20:12:59 +08:00
ldm0 3bcc7cd3b2 fix(layout): preserve text flow across out-of-flow placeholders
Pin Parley flow-advance, logical intrinsic sizing and line-end bidi fixes. Cover wrapping, alignment and intrinsic widths across absolute, fixed and float placeholders, with explicit screenshot refresh at two font sizes.
2026-09-08 19:01:42 +08:00
ldm0 ee7711e434 fix(layout): normalize whitespace across out-of-flow boxes
Keep floats and positioned placeholders transparent to CSS whitespace processing and zero-width-space segment-break transformation, preserving source ownership and atomic-inline boundaries.

Materialize inline box edges on the shared layout grid so normalized split-inline geometry and absolute containing blocks cannot disagree on fractional edges. Add normalizer tests and 52 Chromium-checked geometry comparisons at multiple font sizes.

Verified cargo fmt, workspace all-target/all-feature Clippy, and 17167 Nextest tests. Release focus WPT improves from 25 to 28 of 39 cases without pass or image regressions; two runs agree using a disk-backed temporary directory.
2026-09-08 18:06:37 +08:00
ldm0 4e1137458d fix(layout): preserve principal inline fragment geometry
Model block-in-inline interruptions and continuation identity explicitly. Resolve positioned containing blocks from first/last line fragments, preserve decoration edges, and keep opaque middle fragments out of paint and hit testing.

Finish positioned descendants in preorder and retain numeric sublayout geometry across scrollbar feedback. Update Taffy to forward anonymous block percentage constraints without fixing wrapper height.

Validate 39 Chromium geometry checks, paint/hit regressions, workspace fmt/Clippy and all 17159 Nextest tests. Focus WPT improves from 7/17 to 14/17, with the additional percentage-height case passing (15/18 total).
2026-09-08 17:06:06 +08:00
ldm0 2b430b09de fix(layout): resolve empty inline fragment box geometry once 2026-09-08 14:41:17 +08:00
ldm0 3e25fb22ea fix(layout): resolve paragraph and inline-object bidi directions
Provide the CSS paragraph direction to Parley, distinguish neutral objects from transparent inline boundaries, and use resolved item direction for inline static-position edges. Pin a minimal Parley 0.11.1 extension without upgrading the shaping pipeline. Add 34 Chromium-verified geometry cases and direction-restyle coverage.
2026-09-08 14:41:17 +08:00
ldm0 3a0d08616e fix(layout): anchor inline out-of-flow boxes to line boxes
Retain the hypothetical outer display in the inline object stream. Resolve static positions from CSS line-box edges rather than glyph baselines or ancestor vertical-align offsets, and carry the source IFC direction across containing-block changes. Cover 26 font-independent Chromium differential cases.
2026-09-08 14:41:17 +08:00
ldm0 8bf41b0ad5 fix(layout): preserve grid static positions across containing blocks
Let grid formatting parents contribute logical alignment edges while the actual containing block continues to own positioned sizing. Carry overflow safety into the inset-modified containing-block calculation and share physical coordinate resolution with flex and block static positions.

Cover 23 Chromium-checked geometry scenarios, including RTL, orthogonal writing modes, percentage sizing, definite insets, margins, fixed descendants, grid placement and safe overflow alignment.
2026-09-08 14:41:17 +08:00
ldm0 e3bd4eb104 fix(layout): model flex static-position edges 2026-09-08 14:41:17 +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
ldm0 2c17a7613d fix(canvas): bind path lifetime and resize reset to its context 2026-09-06 04:18:23 +08:00
ldm0 a05b346c5b fix(canvas): correct arc geometry and bound angle normalization 2026-09-06 04:18:23 +08:00
ldm0 acf1eb859a perf(style): reuse cached owner import metadata 2026-09-06 01:36:17 +08:00
ldm0 122355d872 refactor(v8): resolve intrinsic eval without compiling source
Read the existing intrinsic through V8 real-property lookup during Window bootstrap. Avoid one compile/run solely to retrieve eval and bypass DOM named-property interceptors. Cover direct and indirect eval with named DOM candidates. This is reduced bootstrap work, not a claimed MiB-scale steady-state memory saving.
2026-09-06 01:35:40 +08:00