Commit Graph
18 Commits
Author SHA1 Message Date
ldm0 47b95eb66c fix(cssom): share native page selector parsing for resets
Reuse the same native PageSelectors parser for validation and live CSSPageRule mutation. Preserve CSS-only whitespace/comment resets, non-ASCII identifiers, escaped whitespace and invalid-selector behavior with the source regression coverage.

Source-commit: 6ab9df5e2e
2026-11-11 05:26:15 +08:00
ldm0 55e1f5c657 refactor(css): share functional pseudo argument extraction
Pseudo-element identity and computed styles duplicate extraction of a functional pseudo argument. Reuse one CSS utility, retaining literal prefix/parenthesis matching, empty-name rejection and borrowing from the original input.
2026-11-09 22:10:22 +08:00
ldm0 9263af0f7e refactor(cssom): share stylesheet text end positions
Renderer stylesheet snapshots and CDP stylesheet headers repeat text end-position calculation. Put it in the existing shared CSS utility crate and use it from both paths, preserving the current line, character and empty-input behavior.
2026-11-09 18:56:10 +08:00
ldm0 eda3762c1b fix(css): share parser import graphs with stylesheet owners 2026-11-06 20:26:18 +08:00
ldm0 eac226d361 fix(stylesheets): evaluate parser media in the owning document 2026-11-03 07:53:58 +08:00
ldm0 d7d045a45a refactor(css): share native Stylo media query evaluation 2026-11-03 07:53:58 +08:00
ldm0 5953bd1622 fix(fonts): share Chromium-compatible Unicode family matching
FontFaceSet queries compared family names with ASCII-only case folding, while native web-font layout used Unicode lowercasing. The same face could be missed by check/load or selected differently during layout. Share a CSS family matching key between both consumers using Unicode simple folding of UTF-16 code units, matching [Blink's font-family cache hash](https://chromium.googlesource.com/chromium/src/+/a03603fe9af6230a12f1b2fb2c18a7d003a0d937/third_party/blink/renderer/platform/wtf/text/case_folding_hash.h#50). Keep original descriptor spelling and platform/local full-name lookup intact. Register each web font only under its private source family, so Fontique cannot bypass CSS matching through a second public alias. Keep Blob identity and incremental-registration assertions by resolving the CSS alias through the document registry in those tests.

Validation: cargo fmt --all; strict all-feature workspace Clippy;
cargo nextest run --no-fail-fast (20633 tests run: 20633 passed (9 slow), 19 skipped).
2026-10-24 01:03:35 +08:00
ldm0 6c4cdafc20 fix(fonts): preserve generic families in font-set queries
The shared font shorthand parser flattened quoted names and generic keywords into the same String. FontFaceSet.check/load could therefore match and load a custom face named serif when asked for the generic serif family. Keep Stylo's typed distinction between named and generic families, including decoded escapes, and query authored faces only for named families.

Validation: cargo fmt --all; strict all-feature workspace Clippy;
cargo nextest run --no-fail-fast (20630 tests run: 20630 passed (9 slow), 19 skipped).
2026-10-24 01:03:34 +08:00
ldm0 e24bd4a690 fix(fonts): share full descriptor capabilities with layout selection
Move computed capability parsing and matching into moli-css-parse and
retain complete ranges in native font registrations. Select all equally
matched ranges in document order before applying unicode ranges.

Use the shared representation for CSS and JS registrations and query
matching. Add real DOM geometry regressions for numeric, reversed and
calc descriptors, mutations and overlapping range priority.

Validation: cargo fmt --all; strict workspace Clippy;
cargo nextest run --no-fail-fast (20592 tests run: 20592 passed (9 slow), 18 skipped).
2026-10-24 01:03:34 +08:00
ldm0 c7130a3059 fix(fonts): share native FontFace loading across CSS and JS 2026-10-23 04:07:15 +08:00
ldm0 da0b0eeae7 test(css): cover Color 5 zero weights and percentage serialization
Original-commit: 6e9e9a7327
2026-10-21 17:55:02 +08:00
ldm0 e78f5a33b2 feat(layout): update Taffy and Stylo forks with current Blitz adapters
Move Taffy to 0.15 and Stylo to 0.22 using fixed fork revisions, with the
matching stylo_taffy adapter. Upgrade cssparser and the production HTML/XML
parsers while preserving the vendored XML behavior.

Adapt sizing inputs, baselines, grid positions, overflow and out-of-flow
ownership. Preserve font-stretch CSSOM compatibility and intrinsic sizing
through nested atomic inline probes.

Validation: root cargo fmt --all; strict workspace/all-target/all-feature
Clippy; Nextest 20280 passed, 18 skipped; Release build; five browser
regression rounds; RTL and nested intrinsic Chromium geometry controls.
Full WPT Cross is recorded separately with its Cases refresh.

Original-commit: 281a920d89
2026-10-21 17:55:02 +08:00
ldm0 04f066a9a5 fix(observers): parse margin defaults from CSS tokens
Treat comment-only and CSS-whitespace-only IntersectionObserver margin input as the empty default, and reject unitless zero and Unicode whitespace that is not CSS whitespace. The shared CSS token parser and native observer helper use the same contract. Tests cover malformed/empty comments, valid dimensions and invalid token classes.
2026-10-08 21:34:21 +08:00
ldm0 a05bb9287c fix(fonts): validate font set queries with Stylo 2026-10-02 02:23:18 +08:00
ldm0 f06370a4b7 feat(cssom): expose native font palette value rules
Expose CSSFontPaletteValuesRule with native parsing and read-only name, fontFamily, basePalette, and overrideColors descriptors. Attached rules read Stylo state; removed rules retain their descriptors through the existing native snapshot parser.

Regression coverage checks valid/invalid insertion, serialization, rule removal, native receiver brands, cross-realm access, and intrinsic constructor lookup.

Validation: fmt, strict workspace clippy, full nextest. Summary [ 104.120s] 18906 tests run: 18906 passed (9 slow), 16 skipped
2026-09-29 07:25:05 +08:00
ldm0 3330e01843 fix(cssom): parse comments in unicode ranges 2026-09-08 14:41:42 +08:00
ldm0 9cef93dc59 fix(css): honor document color schemes 2026-08-27 19:57:05 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00