Commit Graph
87 Commits
Author SHA1 Message Date
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 bdf76173fe fix(layout): clamp negative widths in intrinsic inline probes 2026-09-15 14:58:25 +08:00
ldm0 17e961433e feat(emulation): apply native view scaling and capture viewport 2026-09-15 14:46:31 +08:00
ldm0 46d5abcae3 feat(emulation): support default background color overrides 2026-09-15 14:46:31 +08:00
ldm0 226ceb3931 fix(table): span zero row spans to section end 2026-09-15 01:54:41 +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 04fb84ce40 fix(fonts): reject unrelated system font substitutions
Split from window.chrome onto origin/main at 4b35bbc968. No other unmerged feature groups included.

Original-commits: 5f14c020f
2026-09-11 22:57:15 +08:00
ldm0 8d9acecc2f fix(layout): preserve double precision transform matrices
Split from window.chrome onto origin/main at 4b35bbc968. No other unmerged feature groups included.

Original-commits: 78d80d527
2026-09-10 20:30:55 +08:00
ldm0 ebe6551954 fix(layout): model flex static-position edges 2026-09-09 01:29:35 +08:00
ldm0 acb59e7107 fix(layout): paint flex and grid items atomically 2026-09-07 22:43:22 +08:00
ldm0 6faf462821 fix(table): preserve fixed percentage intrinsic maxima 2026-09-07 19:40:19 +08:00
ldm0 be6393b694 fix(layout): ignore ratios on internal table boxes 2026-09-07 18:49:41 +08:00
ldm0 07f8e8533a fix(layout): omit whitespace-only flex and grid items 2026-09-07 17:19:45 +08:00
ldm0 0e14d82486 perf(cssom): reuse size projections within style observations
Memoize a single-element property batch without building a full index, and derive one temporary sizing lookup per Document for multi-element observations. Route DOMSnapshot style collection through the shared observation and keep all projections scoped to the synchronous read.

Cover query counts, missing boxes, cold and mock reads, snapshot replacement, iframe isolation, and Inspector and DOMSnapshot capture paths.
2026-09-05 21:31:57 +08:00
ldm0 5ee69560fc fix(cssom): resolve logical sizes from sampled layout axes 2026-09-05 21:31:57 +08:00
ldm0 e02b58d0df fix(cssom): read used sizes from existing layout snapshots
Retain the sampled CSS sizing basis alongside frozen geometry. Resolve width and height only from an existing snapshot for the owning Document, without creating or refreshing layout; preserve style-only fallbacks otherwise.

Cover sizing boxes, zoom, replaced elements, Chromium-derived cases, and demand-driven snapshot lifecycles with renderer, layout, and CLI regressions.
2026-09-05 21:31:57 +08:00
ldm0 16a73930e9 test(layout): cover repeated collapsed-margin measurements 2026-09-03 23:49:49 +08:00
ldm0 f4fa0c70dd fix(layout): preserve table cell sizing and alignment 2026-09-03 23:49:49 +08:00
ldm0 c1204434f7 fix(layout): implement automatic table column sizing 2026-08-31 11:59:59 +08:00
ldm0 b045ea3d52 perf(layout): cache pure text intrinsic widths 2026-08-31 02:34:16 +08:00
ldm0 ac439e328e perf(layout): reuse shaped inline layouts across probes 2026-08-31 02:34:16 +08:00
ldm0 90a036d2b8 docs(layout): explain scrollbar corrective relayout 2026-08-30 19:46:56 +08:00
ldm0 9240c16283 perf(layout): summarize intrinsic inline placement 2026-08-30 19:46:56 +08:00
ldm0 e05ce5ef46 perf(layout): cache document font resolution 2026-08-30 19:46:56 +08:00
ldm0 b09fee1df2 feat(layout): expose resolved Grid tracks 2026-08-30 05:41:30 +08:00
ldm0 7f2efded61 fix(layout): establish filter containing blocks 2026-08-30 03:14:38 +08:00
ldm0 6c4103eefc perf(layout): localize overflow feedback projection 2026-08-30 00:55:04 +08:00
ldm0 112cfda8cb perf(layout): cull paint outside captures 2026-08-30 00:55:04 +08:00
ldm0 13a0609ffa perf(layout): reuse numeric scrollbar feedback 2026-08-30 00:55:04 +08:00
ldm0 59fa4f6c8a perf(layout): materialize inline fragments once 2026-08-30 00:55:04 +08:00
ldm0 b6d7693152 test(layout): cover paint clip stack reuse boundaries 2026-08-29 00:34:31 +08:00
ldm0 4117a16f2d perf(renderer): trace per-frame rendering phases 2026-08-28 15:18:42 +08:00
ldm0 06174c0549 perf(layout): reuse common paint clip prefixes 2026-08-28 15:18:42 +08:00
ldm0 a50bc689ed perf(renderer): reuse style work within layout observations 2026-08-28 15:18:42 +08:00
ldm0 65f53b667e fix(layout): resolve CSSOM metrics in absolute zoom space 2026-08-28 11:28:23 +08:00
ldm0 e5f4ef1f5f Resolve used aspect ratios at layout boundaries 2026-08-28 04:41:52 +08:00
ldm0 de242fbaec Fix one-dimensional inline offset geometry 2026-08-27 19:22:08 +08:00
ldm0 ce0a6157e2 Model inline offset geometry from fragments 2026-08-27 19:22:08 +08:00
ldm0 7391608b7b Ignore table-part decorations in used geometry 2026-08-27 14:59:02 +08:00
ldm0 d0935a7c9b Model embedded frame base backgrounds 2026-08-27 02:03:48 +08:00
ldm0 d0b3d4ef0a Expose image coordinates in untransformed root space 2026-08-27 00:52:15 +08:00
ldm0 12820a5203 Preserve structural ancestry through block-in-inline 2026-08-27 00:42:38 +08:00
ldm0 fce58f7468 deps(layout): upgrade parley to 0.11.1
Stripped moli: 124,163,128 -> 123,520,056 bytes (-643,072 bytes, -0.52%).
2026-08-26 03:29:25 +08:00
ldm0 aa4d73aff5 fix(layout): honor vertical block-start positioning 2026-08-23 15:56:16 +08:00
ldm0 897e8e88a2 feat(layout): model physical scrollbar insets 2026-08-23 03:49:48 +08:00
ldm0 ac477b86f7 fix(layout): align viewport and scrollbar behavior 2026-08-23 03:49:48 +08:00
ldm0 d823999dc0 fix(renderer): fence screencast resource races
Split screenshot and screencast capture contracts, publish one shared visual resource generation, and collect CSS image references during the real layout traversal. Add asynchronous publication and multi-session screencast regressions.
2026-08-22 19:44:54 +08:00
ldm0 03a80259eb Reuse composite layout snapshots for iframe input 2026-08-22 19:44:54 +08:00
ldm0 4f39a0f0d9 Expand iframe and scrollbar input coverage 2026-08-22 19:44:54 +08:00