Skip to content

Treat a table cell's length width as a minimum in the auto table layout - #1345

Open
yangkx1024 wants to merge 1 commit into
DioxusLabs:mainfrom
yangkx1024:table-cell-width-minimum
Open

yangkx1024 wants to merge 1 commit into
DioxusLabs:mainfrom
yangkx1024:table-cell-width-minimum

Conversation

@yangkx1024

@yangkx1024 yangkx1024 commented Oct 30, 2026 •

Copy link
Copy Markdown

In the auto table layout, a column's length width (from a first-row cell or a <col>) became a fixed grid track, so content wider than it overflowed into the next column. GitHub's notification emails head a column with <th style="width: 24px">Status</th>, and "Status" was painted over the next header.

Browsers treat that width as a minimum. The column grows to the min-content width of the cells that originate in it, but not to their max-content width. Such a column now gets a minmax(min-content, fit-content(<width>)) track. Each of its single-column cells reports the larger of its min-content width and the column's width as both of its intrinsic widths. The min-content width is measured with SizingMode::ContentSize, because the cell's own width would otherwise fix the measurement. So the track grows to fit those cells, but cells spanning it still push their extra width into the other columns, since taffy caps growth past the limit at the fit-content() argument. A column with only spanning cells keeps its fixed track. The fixed table layout is unchanged.

Locally, WPT css/css-tables has 9 more subtests passing and none newly failing (column-widths.html tables 5, 8, 17 and 29; colspan-redistribution.html table 10; column-track-merging.html table 11; table 3 of both quirks tests), and fixed-layout-2.html now passes. An earlier version that made these columns minmax(min-content, max-content) tracks gained a few more colspan-redistribution cases but broke three others, because spanning cells then widened the constrained column too.

#1019 removes SizingMode, which the measurement here relies on, and #1004 also changes how column widths are collected, so whichever of these lands later will need a small rebase.

WPT results

Subtests: 71 newly passing, 440 newly failing (net -369). Tests: 96 added, 408 removed. Timeouts: -2.

Subtest changes by area (93 areas)
- css                          | -337 (+67 / -404) |  59.58% -> 59.41% ( -0.17%) | 119188 -> 118851 / 200044
-   CSS2                       |  -45 ( +0 /  -45) |  78.90% -> 78.39% ( -0.51%) |   6999 ->   6954 /   8871
-     floats                   |  -19 ( +0 /  -19) |  76.52% -> 68.83% ( -7.69%) |    189 ->    170 /    247
-     normal-flow              |  -21 ( +0 /  -21) |  84.85% -> 82.60% ( -2.26%) |    790 ->    769 /    931
-     pagination               |   -1 ( +0 /   -1) |  93.02% -> 90.70% ( -2.33%) |     40 ->     39 /     43
-     positioning              |   -1 ( +0 /   -1) |  93.49% -> 93.31% ( -0.19%) |    503 ->    502 /    538
-     text                     |   -1 ( +0 /   -1) |  82.48% -> 82.24% ( -0.24%) |    339 ->    338 /    411
-     visudet                  |   -2 ( +0 /   -2) |  50.00% -> 45.24% ( -4.76%) |     21 ->     19 /     42
-   css-align                  |  -63 ( +1 /  -64) |  91.18% -> 90.03% ( -1.15%) |   5011 ->   4948 /   5496
-     abspos                   |  -56 ( +0 /  -56) |  91.99% -> 87.17% ( -4.82%) |   1068 ->   1012 /   1161
-     baseline-rules           |   -2 ( +1 /   -3) |  78.57% -> 71.43% ( -7.14%) |     22 ->     20 /     28
-     blocks                   |   -5 ( +0 /   -5) |  89.60% -> 88.73% ( -0.87%) |    517 ->    512 /    577
-   css-anchor-position        |   -1 ( +0 /   -1) |  13.89% -> 13.88% ( -0.01%) |   1934 ->   1933 /  13922
-   css-animations             |   -1 ( +0 /   -1) |  56.18% -> 56.11% ( -0.07%) |    832 ->    831 /   1481
-     crashtests               |   -1 ( +0 /   -1) | 100.00% -> 97.22% ( -2.78%) |     36 ->     35 /     36
-   css-borders                |   -1 ( +0 /   -1) |  61.45% -> 61.40% ( -0.06%) |   1116 ->   1115 /   1816
-     corner-shape             |   -1 ( +0 /   -1) |  74.11% -> 74.03% ( -0.08%) |    879 ->    878 /   1186
+   css-box                    |  +25 (+26 /   -1) |  59.82% -> 62.03% ( +2.20%) |    679 ->    704 /   1135
+     margin-trim              |  +25 (+26 /   -1) |   4.52% -> 17.09% (+12.56%) |      9 ->     34 /    199
+       computed-margin-values |  +26 (+26 /   -0) |   0.00% -> 27.37% (+27.37%) |      0 ->     26 /     95
-   css-break                  |   -2 ( +0 /   -2) |  16.27% -> 16.17% ( -0.10%) |    322 ->    320 /   1979
-   css-color-adjust           |   -1 ( +0 /   -1) |  76.24% -> 75.69% ( -0.55%) |    138 ->    137 /    181
-     rendering                |   -1 ( +0 /   -1) |  41.18% -> 38.24% ( -2.94%) |     14 ->     13 /     34
-       dark-color-scheme      |   -1 ( +0 /   -1) |  41.18% -> 38.24% ( -2.94%) |     14 ->     13 /     34
!   css-display                |   +0 (+18 /  -18) |  51.19% -> 51.19% ( +0.00%) |    366 ->    366 /    715
!     reading-flow             |   +0 (+18 /  -18) |  22.50% -> 22.50% ( +0.00%) |     18 ->     18 /     80
+       tentative              |  +18 (+18 /   -0) |   0.00% -> 45.00% (+45.00%) |      0 ->     18 /     40
-   css-flexbox                |   -9 ( +0 /   -9) |  88.96% -> 88.81% ( -0.15%) |   5199 ->   5190 /   5844
-     intrinsic-size           |   -4 ( +0 /   -4) |  53.85% -> 48.72% ( -5.13%) |     42 ->     38 /     78
-   css-fonts                  |   -7 ( +0 /   -7) |  74.63% -> 74.55% ( -0.08%) |   6643 ->   6636 /   8901
-     variations               |   -1 ( +0 /   -1) |  80.05% -> 79.79% ( -0.27%) |    301 ->    300 /    376
-   css-grid                   |  -22 (+13 /  -35) |  77.71% -> 77.59% ( -0.12%) |  13753 ->  13731 /  17697
-     grid-definition          |   -6 ( +0 /   -6) |  94.26% -> 93.81% ( -0.44%) |   1280 ->   1274 /   1358
-     grid-items               |   -2 ( +0 /   -2) |  98.63% -> 98.46% ( -0.17%) |   1155 ->   1153 /   1171
!     grid-lanes               |   +0 (+13 /  -13) |  35.44% -> 35.44% ( +0.00%) |   1292 ->   1292 /   3646
!       item-placement         |   +0 ( +1 /   -1) |   2.63% ->  2.63% ( +0.00%) |      3 ->      3 /    114
-         fit-tolerance        |   -1 ( +0 /   -1) |   5.88% ->  0.00% ( -5.88%) |      1 ->      0 /     17
+         flow-tolerance       |   +1 ( +1 /   -0) |   0.00% ->  5.56% ( +5.56%) |      0 ->      1 /     18
!       tentative              |   +0 (+12 /  -12) |  18.79% -> 18.79% ( +0.00%) |     53 ->     53 /    282
!         parsing              |   +0 (+12 /  -12) |  22.22% -> 22.22% ( +0.00%) |     52 ->     52 /    234
-     layout-algorithm         |  -14 ( +0 /  -14) |  74.50% -> 73.01% ( -1.49%) |    701 ->    687 /    941
-   css-images                 |   -1 ( +0 /   -1) |  87.29% -> 87.27% ( -0.02%) |   3558 ->   3557 /   4076
-   css-inline                 |   -4 ( +0 /   -4) |  37.17% -> 36.84% ( -0.32%) |    459 ->    455 /   1235
-     parsing                  |   -2 ( +0 /   -2) |  75.78% -> 74.53% ( -1.24%) |    122 ->    120 /    161
-   css-lists                  |   -8 ( +0 /   -8) |  69.91% -> 69.22% ( -0.68%) |    820 ->    812 /   1173
-   css-overflow               |   -4 ( +0 /   -4) |  38.30% -> 38.08% ( -0.22%) |    681 ->    677 /   1778
-     line-clamp               |   -3 ( +0 /   -3) |  18.24% -> 17.33% ( -0.91%) |     60 ->     57 /    329
-     scroll-markers           |   -1 ( +0 /   -1) |  23.56% -> 22.99% ( -0.57%) |     41 ->     40 /    174
-   css-page                   |   -5 ( +0 /   -5) |  37.57% -> 36.09% ( -1.48%) |    127 ->    122 /    338
-   css-properties-values-api  |   -1 ( +0 /   -1) |  50.33% -> 50.23% ( -0.09%) |    537 ->    536 /   1067
-   css-pseudo                 |   -3 ( +0 /   -3) |  17.75% -> 17.48% ( -0.27%) |    196 ->    193 /   1104
-     crashtests               |   -1 ( +0 /   -1) | 100.00% -> 80.00% (-20.00%) |      5 ->      4 /      5
-   css-scroll-anchoring       |   -3 ( +0 /   -3) |  12.09% ->  8.79% ( -3.30%) |     11 ->      8 /     91
-   css-sizing                 |  -27 ( +0 /  -27) |  63.78% -> 63.39% ( -0.40%) |   4345 ->   4318 /   6812
-     aspect-ratio             |   -1 ( +0 /   -1) |  77.24% -> 77.07% ( -0.17%) |    448 ->    447 /    580
-     parsing                  |  -20 ( +0 /  -20) |  69.35% -> 61.69% ( -7.66%) |    181 ->    161 /    261
-   css-tables                 |  -30 ( +9 /  -39) |  55.42% -> 52.78% ( -2.64%) |    629 ->    599 /   1135
-     height-distribution      |   -2 ( +0 /   -2) |  60.87% -> 52.17% ( -8.70%) |     14 ->     12 /     23
+     tentative                |   +7 ( +7 /   -0) |  28.69% -> 30.64% ( +1.95%) |    103 ->    110 /    359
-     width-distribution       |   -2 ( +0 /   -2) |  77.14% -> 71.43% ( -5.71%) |     27 ->     25 /     35
-   css-text                   |  -36 ( +0 /  -36) |  73.87% -> 73.31% ( -0.56%) |   4718 ->   4682 /   6387
-     line-break               |   -3 ( +0 /   -3) |  90.00% -> 86.67% ( -3.33%) |     81 ->     78 /     90
-     parsing                  |   -7 ( +0 /   -7) |  65.03% -> 64.15% ( -0.88%) |    517 ->    510 /    795
-     text-align               |   -2 ( +0 /   -2) |  65.40% -> 64.64% ( -0.76%) |    172 ->    170 /    263
-     text-autospace           |   -1 ( +0 /   -1) |  61.76% -> 58.82% ( -2.94%) |     21 ->     20 /     34
-       crashtests             |   -1 ( +0 /   -1) | 100.00% -> 50.00% (-50.00%) |      2 ->      1 /      2
-     text-transform           |   -8 ( +0 /   -8) |  97.62% -> 94.90% ( -2.72%) |    287 ->    279 /    294
-     white-space              |   -6 ( +0 /   -6) |  77.82% -> 77.12% ( -0.70%) |    670 ->    664 /    861
-     wrap-inside              |   -9 ( +0 /   -9) |  31.03% ->  0.00% (-31.03%) |      9 ->      0 /     29
-   css-text-decor             |   -7 ( +0 /   -7) |  66.35% -> 65.94% ( -0.41%) |   1130 ->   1123 /   1703
-   css-transforms             |   -2 ( +0 /   -2) |  65.68% -> 65.65% ( -0.03%) |   4163 ->   4161 /   6338
-   css-ui                     |   -4 ( +0 /   -4) |  80.70% -> 80.58% ( -0.12%) |   2701 ->   2697 /   3347
-   css-values                 |  -24 ( +0 /  -24) |  55.07% -> 54.84% ( -0.23%) |   5810 ->   5786 /  10550
-     calc-size                |   -2 ( +0 /   -2) |  22.79% -> 22.74% ( -0.05%) |    969 ->    967 /   4252
-   css-viewport               |   -6 ( +0 /   -6) |  74.94% -> 73.54% ( -1.41%) |    320 ->    314 /    427
-     zoom                     |   -6 ( +0 /   -6) |  75.53% -> 74.11% ( -1.43%) |    318 ->    312 /    421
-   css-writing-modes          |   -7 ( +0 /   -7) |  45.89% -> 45.43% ( -0.46%) |    698 ->    691 /   1521
-   cssom                      |  -10 ( +0 /  -10) |  78.50% -> 78.27% ( -0.23%) |   3458 ->   3448 /   4405
-   cssom-view                 |   -1 ( +0 /   -1) |  64.35% -> 64.30% ( -0.04%) |   1480 ->   1479 /   2300
-   filter-effects             |  -23 ( +0 /  -23) |  53.35% -> 52.66% ( -0.69%) |   1786 ->   1763 /   3348
-   selectors                  |   -4 ( +0 /   -4) |  48.56% -> 48.48% ( -0.08%) |   2509 ->   2505 /   5167
- svg                          |  -32 ( +4 /  -36) |  37.96% -> 37.76% ( -0.20%) |   6017 ->   5985 /  15849
-   coordinate-systems         |   -3 ( +0 /   -3) |  11.76% ->  8.24% ( -3.53%) |     10 ->      7 /     85
-   crashtests                 |   -1 ( +0 /   -1) | 100.00% -> 95.83% ( -4.17%) |     24 ->     23 /     24
-   embedded                   |   -7 ( +0 /   -7) |  37.50% -> 20.00% (-17.50%) |     15 ->      8 /     40
-   interact                   |  -11 ( +0 /  -11) |  47.42% -> 47.30% ( -0.12%) |   4398 ->   4387 /   9275
-     scripted                 |  -11 ( +0 /  -11) |  47.55% -> 47.43% ( -0.12%) |   4387 ->   4376 /   9227
-   linking                    |   -1 ( +0 /   -1) |  17.39% -> 16.91% ( -0.48%) |     36 ->     35 /    207
-     reftests                 |   -1 ( +0 /   -1) |  37.93% -> 36.21% ( -1.72%) |     22 ->     21 /     58
-   painting                   |   -1 ( +0 /   -1) |  54.56% -> 54.43% ( -0.13%) |    419 ->    418 /    768
-   styling                    |   -9 ( +0 /   -9) |  33.48% -> 31.55% ( -1.93%) |    156 ->    147 /    466
-   text                       |   -3 ( +0 /   -3) |  50.36% -> 49.28% ( -1.08%) |    140 ->    137 /    278
-     reftests                 |   -3 ( +0 /   -3) |  89.01% -> 85.71% ( -3.30%) |     81 ->     78 /     91
Full diff (524 changed tests)
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-001.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-002.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-003.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-004.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-005.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-006.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-007.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-008.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-009.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-010.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-011.html
- REM               [1/1]   -1  css/CSS2/floats/float-avoids-float-with-margin-012.html
- REM               [1/1]   -1  css/CSS2/floats/float-in-block-in-inline-001.html
- REM               [6/6]   -6  css/CSS2/floats/float-in-block-in-inline-position-001.html
- REM               [0/1]   +0  css/CSS2/floats/float-wider-than-line-inside-inline-with-block.html
- REM               [1/1]   -1  css/CSS2/normal-flow/block-in-inline-margin-after-relayout-001.html
- REM               [1/1]   -1  css/CSS2/normal-flow/block-in-inline-margin-after-relayout-002.html
- REM               [2/2]   -2  css/CSS2/normal-flow/block-in-inline-margin-after-relayout.html
- REM               [2/2]   -2  css/CSS2/normal-flow/block-in-inline-margin-before-relayout.html
- REM               [6/6]   -6  css/CSS2/normal-flow/block-in-inline-self-collapsing-margin-001.html
- REM               [3/3]   -3  css/CSS2/normal-flow/block-with-table-content-is-not-self-collapsing.html
- REM               [1/1]   -1  css/CSS2/normal-flow/clearance-covers-the-margin-of-a-collapsed-through-block-in-inline.html
- REM               [1/1]   -1  css/CSS2/normal-flow/margin-collapse-through-block-in-inline-001.html
- REM               [4/4]   -4  css/CSS2/normal-flow/nested-inline-boxes-around-block-in-inline-001.html
- PASS => FAIL      [0/1]   -1  css/CSS2/pagination/block-page-break-inside-avoid-11-print.html
- REM               [1/5]   -1  css/CSS2/positioning/relpos-percentage-offset-anonymous-block.html
- PASS => FAIL      [0/1]   -1  css/CSS2/text/text-transform-unicase-001.xht
- REM               [2/3]   -2  css/CSS2/visudet/inline-block-baseline-with-block-in-inline-001.html
- REM             [14/14]  -14  css/css-align/abspos/justify-self-static-position-htb-ltr-htb.html
- REM             [14/14]  -14  css/css-align/abspos/justify-self-static-position-htb-rtl-htb.html
- REM             [14/14]  -14  css/css-align/abspos/justify-self-static-position-vlr-ltr-vlr.html
- REM             [14/14]  -14  css/css-align/abspos/justify-self-static-position-vrl-ltr-vrl.html
- REM               [2/3]   -2  css/css-align/baseline-rules/first-baseline-block-in-inline-001.html
+ FAIL => PASS      [1/1]   +1  css/css-align/baseline-rules/grid-item-input-type-number.html
- REM               [1/1]   -1  css/css-align/baseline-rules/overflow-hidden-block-in-inline-baseline.html
- REM               [4/4]   -4  css/css-align/blocks/align-content-block-float-001.html
- REM               [1/1]   -1  css/css-align/blocks/align-content-block-in-inline-001.html
- REM               [0/5]   +0  css/css-anchor-position/anchor-inline-box-vrl.html
- REM               [1/1]   -1  css/css-anchor-position/position-try-fallbacks-scrollbar.html
- REM               [1/1]   -1  css/css-animations/crashtests/chrome-bug-576322434.html
- REM               [0/1]   +0  css/css-backgrounds/background-image-no-repeat-does-not-wrap.html
- REM               [0/1]   +0  css/css-backgrounds/box-shadow/inset-shadow-large-spread-clipped-to-padding-box.html
- REM               [0/1]   +0  css/css-backgrounds/box-shadow/inset-shadow-large-spread-cloned-inline.html
- REM               [0/1]   +0  css/css-backgrounds/box-shadow/inset-shadow-large-spread-fragmented-inline.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-clip-path-border-box.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-convex-inert.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-elliptical.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-mixed.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-notch.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-scoop.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-opposite-scale-superellipse.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003.html
- REM               [0/1]   +0  css/css-borders/corner-shape/corner-shape-outline-negative-offset-square.html
- REM               [0/7]   +0  css/css-borders/corner-shape/corner-shape-outside-content-box.html
- REM               [0/5]   +0  css/css-borders/corner-shape/corner-shape-outside-corners.html
- REM               [1/7]   -1  css/css-borders/corner-shape/corner-shape-outside-margin-box.html
- REM               [0/7]   +0  css/css-borders/corner-shape/corner-shape-outside-padding-box.html
- REM               [0/7]   +0  css/css-borders/corner-shape/corner-shape-outside-shape-margin.html
- REM               [0/1]   +0  css/css-box/margin-trim/block-container-block-in-inline-008.html
- REM               [1/1]   -1  css/css-box/margin-trim/block-container-block-in-inline-009.html
- REM               [0/1]   +0  css/css-box/margin-trim/block-container-block-in-inline-010.html
+ ADD               [1/2]   +1  css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end.html
+ ADD               [0/2]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html
+ ADD               [2/2]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-block.html
+ ADD               [2/3]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end.html
+ ADD               [0/3]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end.html
+ ADD               [0/4]   +0  css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html
+ ADD               [3/5]   +3  css/css-box/margin-trim/computed-margin-values/grid-block-end-column-auto-flow.html
+ ADD               [0/2]   +0  css/css-box/margin-trim/computed-margin-values/grid-block-end-item-spans-multiple-rows.html
+ ADD               [3/4]   +3  css/css-box/margin-trim/computed-margin-values/grid-block-end.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/grid-block-start.html
+ ADD               [2/2]   +2  css/css-box/margin-trim/computed-margin-values/grid-inline-end-columns-added-to-end.html
+ ADD               [2/4]   +2  css/css-box/margin-trim/computed-margin-values/grid-inline-end-items-in-last-column-trimmed.html
+ ADD               [0/2]   +0  css/css-box/margin-trim/computed-margin-values/grid-inline-start-item-negative-span.html
+ ADD               [1/5]   +1  css/css-box/margin-trim/computed-margin-values/grid-inline-start.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-block-end-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-block-start-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-block-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-block-multiline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-grow.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-inline-multiline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-orthogonal-item.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-shrink.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-column-style-change-triggers-layout-block.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-inline-end-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-inline-start-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-inline-trimmed-only.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-block-multiline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-grow.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-inline-multiline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-orthogonal-item.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-shrink.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/flex-trim-all-margins.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-block-end.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-block-start.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-block.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-inline-end.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-inline-start.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-inline.html
+ ADD               [0/1]   +0  css/css-box/margin-trim/grid-trim-ignores-collapsed-tracks.html
- REM               [2/5]   -2  css/css-break/box-decoration-break-clone-block-in-inline-001.html
- REM               [0/1]   +0  css/css-break/table/oof-static-pos-percentage-height-001.html
- REM               [0/1]   +0  css/css-break/table/oof-static-pos-percentage-height-002.html
- REM               [0/1]   +0  css/css-color-adjust/rendering/dark-color-scheme/prefers-color-scheme-meta-dark.html
- REM               [0/1]   +0  css/css-color-adjust/rendering/dark-color-scheme/prefers-color-scheme-meta-dynamic.html
- REM               [1/1]   -1  css/css-color-adjust/rendering/dark-color-scheme/prefers-color-scheme-meta-light-dark.html
- REM               [0/1]   +0  css/css-color-adjust/rendering/dark-color-scheme/prefers-color-scheme-meta-only-dark-print.tentative.html
- REM               [0/1]   +0  css/css-counter-styles/cjk-ideographic/counter-cjk-ideographic-extended-range.optional.html
- REM               [0/4]   +0  css/css-counter-styles/cssom/cssom-name-setter-getter.html
- REM               [0/1]   +0  css/css-counter-styles/japanese-formal/counter-japanese-formal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/japanese-informal/counter-japanese-informal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/korean-hangul-formal/counter-korean-hangul-formal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/korean-hanja-formal/counter-korean-hanja-formal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/korean-hanja-informal/counter-korean-hanja-informal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/simp-chinese-formal/counter-simp-chinese-formal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/simp-chinese-informal/counter-simp-chinese-informal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/trad-chinese-formal/counter-trad-chinese-formal-extended-range.optional.html
- REM               [0/1]   +0  css/css-counter-styles/trad-chinese-informal/counter-trad-chinese-informal-extended-range.optional.html
- REM               [0/1]   +0  css/css-display/display-contents-svg-tspan-child-character-positions.html
- REM               [0/1]   +0  css/css-display/display-contents-svg-tspan-child-display-changed.html
- REM               [0/1]   +0  css/css-display/display-contents-svg-tspan-child-removed.html
- REM               [0/1]   +0  css/css-display/display-contents-svg-tspan-child-text-inserted.html
- REM               [0/7]   +0  css/css-display/reading-flow/reading-flow-computed.html
- REM               [9/9]   -9  css/css-display/reading-flow/reading-flow-invalid.html
- REM               [0/7]   +0  css/css-display/reading-flow/reading-flow-valid.html
- REM               [0/4]   +0  css/css-display/reading-flow/reading-order-computed.html
- REM               [9/9]   -9  css/css-display/reading-flow/reading-order-invalid.html
- REM               [0/4]   +0  css/css-display/reading-flow/reading-order-valid.html
+ ADD               [0/7]   +0  css/css-display/reading-flow/tentative/reading-flow-computed.html
+ ADD               [9/9]   +9  css/css-display/reading-flow/tentative/reading-flow-invalid.html
+ ADD               [0/7]   +0  css/css-display/reading-flow/tentative/reading-flow-valid.html
+ ADD               [0/4]   +0  css/css-display/reading-flow/tentative/reading-order-computed.html
+ ADD               [9/9]   +9  css/css-display/reading-flow/tentative/reading-order-invalid.html
+ ADD               [0/4]   +0  css/css-display/reading-flow/tentative/reading-order-valid.html
- REM               [3/3]   -3  css/css-flexbox/column-reverse-wrap-auto-margins-001.html
- REM               [1/1]   -1  css/css-flexbox/flex-item-z-ordering-003.html
- REM               [1/1]   -1  css/css-flexbox/flex-item-z-ordering-004.html
- REM               [1/4]   -1  css/css-flexbox/intrinsic-size/col-wrap-baseline-001.html
- REM               [0/2]   +0  css/css-flexbox/intrinsic-size/col-wrap-calc-size-001.html
- REM               [1/1]   -1  css/css-flexbox/intrinsic-size/col-wrap-grid-item-001.html
- REM               [0/1]   +0  css/css-flexbox/intrinsic-size/col-wrap-percentage-001.html
- REM               [2/2]   -2  css/css-flexbox/intrinsic-size/percentage-gap-001.html
- REM               [1/1]   -1  css/css-fonts/cluster-matching-canonical-equivalence-001.html
- REM               [1/1]   -1  css/css-fonts/cluster-matching-canonical-equivalence-002.html
- REM               [1/1]   -1  css/css-fonts/cluster-matching-canonical-equivalence-003.html
- REM               [0/1]   +0  css/css-fonts/font-face-unicode-range-no-match-no-download.html
- REM               [1/1]   -1  css/css-fonts/font-face-unicode-range-stretch-isolation.html
- REM               [1/1]   -1  css/css-fonts/font-palette-mix.html
- REM               [1/1]   -1  css/css-fonts/generic-family-lang-attr-cascade.html
- PASS => FAIL      [0/1]   -1  css/css-fonts/variations/variable-opsz.html
- REM               [0/1]   +0  css/css-gaps/flex/flex-gap-decorations-070.html
- REM               [0/1]   +0  css/css-gaps/grid-lanes/column-gap-decorations-rule-visibility-items-between-018.html
- REM               [0/1]   +0  css/css-grid/firefox-bug-2084787.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-collapsed-gutters-001.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-collapsed-rows-001.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-empty-repeat-range-001.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-fewer-items-than-tracks-001.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-implicit-and-spanning-001.html
- REM               [1/1]   -1  css/css-grid/grid-definition/grid-auto-fit-intrinsic-collapsed-001.html
- REM               [1/1]   -1  css/css-grid/grid-items/grid-item-min-block-size-dynamic-container-shrink-001.html
- PASS => FAIL      [0/1]   -1  css/css-grid/grid-items/grid-item-overflow-paint-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/column-grid-lanes-oof-track-reverse-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/column-grid-lanes-oof-track-reverse-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/column-grid-lanes-oof-track-reverse-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/column-grid-lanes-oof-track-reverse-rtl-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/row-grid-lanes-oof-track-reverse-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/row-grid-lanes-oof-track-reverse-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/row-grid-lanes-oof-track-reverse-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/abspos/row-grid-lanes-oof-track-reverse-rtl-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-fit-tolerance-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-fit-tolerance-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-fit-tolerance-003.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-flow-tolerance-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-flow-tolerance-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-dense-packing-flow-tolerance-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-fill-reverse-dense-packing-fit-tolerance-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-fill-reverse-dense-packing-flow-tolerance-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-track-reverse-dense-packing-fit-tolerance-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-track-reverse-dense-packing-fit-tolerance-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-track-reverse-dense-packing-flow-tolerance-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/column-track-reverse-dense-packing-flow-tolerance-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-fit-tolerance-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-fit-tolerance-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-fit-tolerance-003.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-flow-tolerance-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-flow-tolerance-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-dense-packing-flow-tolerance-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-track-reverse-dense-packing-fit-tolerance-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-track-reverse-dense-packing-fit-tolerance-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-track-reverse-dense-packing-flow-tolerance-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/dense-packing/row-track-reverse-dense-packing-flow-tolerance-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/column-fit-tolerance-infinite.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/column-initial-fit-tolerance.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-column-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-column-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-column-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-column-004.html
- REM               [1/1]   -1  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-dynamic-update.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-percentage-column-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-percentage-intrinsic-column-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-percentage-intrinsic-row-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-percentage-row-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-row-001.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-row-002.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-row-003.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/fit-tolerance-row-004.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/row-fit-tolerance-infinite.html
- REM               [0/1]   +0  css/css-grid/grid-lanes/item-placement/fit-tolerance/row-initial-fit-tolerance.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/column-flow-tolerance-infinite.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/column-initial-flow-tolerance.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-column-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-column-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-column-003.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-column-004.html
+ ADD               [1/1]   +1  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-dynamic-update.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-percentage-column-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-percentage-intrinsic-column-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-percentage-intrinsic-row-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-percentage-row-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-row-001.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-row-002.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-row-003.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/flow-tolerance-row-004.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/row-flow-tolerance-infinite.html
+ ADD               [0/1]   +0  css/css-grid/grid-lanes/item-placement/flow-tolerance/row-initial-flow-tolerance.html
- REM               [0/7]   +0  css/css-grid/grid-lanes/tentative/parsing/fit-tolerance-computed.html
- REM             [12/12]  -12  css/css-grid/grid-lanes/tentative/parsing/fit-tolerance-invalid.html
- REM               [0/8]   +0  css/css-grid/grid-lanes/tentative/parsing/fit-tolerance-valid.html
+ ADD               [0/7]   +0  css/css-grid/grid-lanes/tentative/parsing/flow-tolerance-computed.html
+ ADD             [12/12]  +12  css/css-grid/grid-lanes/tentative/parsing/flow-tolerance-invalid.html
+ ADD               [0/8]   +0  css/css-grid/grid-lanes/tentative/parsing/flow-tolerance-valid.html
- REM               [0/1]   +0  css/css-grid/grid-model/grid-item-first-line-001.html
- REM               [0/1]   +0  css/css-grid/grid-model/grid-item-first-line-002.html
- REM             [13/14]  -13  css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-002.html
- REM               [1/1]   -1  css/css-grid/layout-algorithm/grid-auto-row-regrows-after-container-height-shrinks-001.html
- REM               [0/3]   +0  css/css-grid/subgrid/subgrid-item-aspect-ratio-001.html
- REM               [0/1]   +0  css/css-images/object-fit-contain-svg-zero-height.html
- REM               [0/1]   +0  css/css-images/object-fit-embedded-svg-dynamic-change.html
- REM               [0/1]   +0  css/css-images/object-fit-embedded-svg-root-will-change-dynamic-change.html
- REM               [0/1]   +0  css/css-images/object-fit-embedded-svg-root-will-change.html
- REM               [0/1]   +0  css/css-images/object-fit-embedded-svg-will-change.html
- REM               [1/1]   -1  css/css-images/object-fit-fill-svg-with-natural-size-and-viewbox.html
- REM               [0/1]   +0  css/css-images/object-view-box-embedded-svg-dynamic-change.html
- REM               [1/1]   -1  css/css-inline/inline-block-baseline-with-block-in-inline.html
- REM               [1/1]   -1  css/css-inline/inline-block-last-baseline-skips-non-contributing-block-in-inline.html
- FAIL => FAIL    [10/13]   -2  css/css-inline/parsing/line-height-computed.html
- REM               [0/1]   +0  css/css-inline/text-box-trim/text-box-trim-both-with-bottom-aligned-box.html
- REM               [0/1]   +0  css/css-link-params/link-parameters-substitution.html
- REM               [1/1]   -1  css/css-lists/inside-marker-with-block-in-inline.html
- REM               [1/1]   -1  css/css-lists/list-marker-font-size-mutation.html
- REM               [1/1]   -1  css/css-lists/marker-direction-does-not-move-box.html
- REM               [1/1]   -1  css/css-lists/outside-marker-alignment-with-block-content.html
- REM               [1/1]   -1  css/css-lists/outside-marker-position-with-cached-line-content.html
- REM               [0/1]   +0  css/css-lists/outside-marker-taller-than-content.html
- REM               [2/2]   -2  css/css-lists/outside-marker-with-block-content.html
- REM               [1/1]   -1  css/css-lists/outside-marker-with-block-in-nested-inline.html
- REM               [0/1]   +0  css/css-masking/clip-path/clip-path-url-reference-data-uri-svg-element.html
- REM               [0/1]   +0  css/css-masking/clip-path/clip-path-url-reference-external-svg-element.html
- REM               [1/1]   -1  css/css-overflow/line-clamp/line-clamp-with-floats-016.html
- REM               [1/1]   -1  css/css-overflow/line-clamp/line-clamp-with-floats-017.html
- REM               [1/1]   -1  css/css-overflow/line-clamp/webkit-line-clamp-abspos-scrollbar-change.html
- REM               [1/1]   -1  css/css-overflow/scroll-markers/column-scroll-marker-manual-slot-recalc-crash.html
- REM               [1/1]   -1  css/css-page/page-context-inherits-from-root-custom-property-print.html
- REM               [1/1]   -1  css/css-page/page-context-inherits-from-root-em-rem-print.html
- REM               [1/1]   -1  css/css-page/page-context-inherits-from-root-font-size-001-print.html
- REM               [1/1]   -1  css/css-page/page-context-inherits-from-root-font-size-002-print.html
- REM               [1/1]   -1  css/css-page/page-context-inherits-from-root-rem-print.html
- REM               [0/1]   +0  css/css-position/position-relative-empty-inline.html
- REM               [1/2]   -1  css/css-properties-values-api/custom-property-explicit-inherit-invalidation.html
- PASS => FAIL      [0/1]   -1  css/css-pseudo/before-as-flex-container.html
- REM               [1/1]   -1  css/css-pseudo/crashtests/placeholder-style-sharing-crash.html
- REM               [0/1]   +0  css/css-pseudo/first-letter-before-dynamic-multi.html
- REM               [0/1]   +0  css/css-pseudo/first-letter-before-dynamic-on-block.html
- REM               [0/1]   +0  css/css-pseudo/first-letter-before-dynamic-punctuation.html
- REM               [0/1]   +0  css/css-pseudo/first-letter-before-dynamic.html
- REM               [1/1]   -1  css/css-pseudo/first-letter-float-insert-text-before.html
- REM               [0/1]   +0  css/css-pseudo/first-line-with-quote.html
- REM               [0/1]   +0  css/css-scroll-anchoring/anchor-used-height-change-does-not-suppress.html
- REM               [0/1]   +0  css/css-scroll-anchoring/negative-layout-overflow-on-anchor.html
- REM               [1/1]   -1  css/css-scroll-anchoring/scroll-padding-change.html
- REM               [1/1]   -1  css/css-scroll-anchoring/suppress-for-top-change.html
- REM               [1/1]   -1  css/css-scroll-anchoring/suppress-for-transform-change.html
- REM               [0/4]   +0  css/css-scroll-snap/snap-to-column-scroll-origin.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-border-box-shape-margin-with-margin.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-border-box-with-block-start-margin.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-border-box-with-margin-right-float.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-border-box-with-margin.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-content-box-with-margin.html
- REM               [0/1]   +0  css/css-shapes/shape-outside/shape-box/shape-outside-padding-box-with-margin.html
- REM               [1/1]   -1  css/css-sizing/aspect-ratio/flex-aspect-ratio-056.html
- REM               [1/1]   -1  css/css-sizing/intrinsic-percent-replaced-034.html
- REM               [0/1]   +0  css/css-sizing/intrinsic-percent-replaced-035.html
- REM             [10/10]  -10  css/css-sizing/parsing/max-size-invalid.html
- REM              [0/15]   +0  css/css-sizing/parsing/max-size-shorthand.html
- REM              [0/14]   +0  css/css-sizing/parsing/max-size-valid.html
- REM             [10/10]  -10  css/css-sizing/parsing/min-size-invalid.html
- REM              [0/15]   +0  css/css-sizing/parsing/min-size-shorthand.html
- REM              [0/14]   +0  css/css-sizing/parsing/min-size-valid.html
- REM               [1/1]   -1  css/css-sizing/replaced-min-width-greater-than-max-width.html
- FAIL => FAIL      [2/5]   -4  css/css-sizing/size-shorthand-serialization.tentative.html
- REM              [0/14]   +0  css/css-sizing/svg-intrinsic-size-zero-img-and-object.html
- REM             [11/11]  -11  css/css-tables/absolute-tables-height-001.html
- REM               [0/1]   +0  css/css-tables/absolute-tables-height-quirks-001.html
- REM               [0/1]   +0  css/css-tables/collapsed-border-background-inset.html
- PASS => FAIL      [0/5]   -5  css/css-tables/colspan-001.html
- PASS => FAIL      [0/5]   -5  css/css-tables/colspan-002.html
- PASS => FAIL      [0/5]   -5  css/css-tables/colspan-003.html
+ FAIL => FAIL     [5/13]   +1  css/css-tables/column-track-merging.html
+ FAIL => FAIL     [6/10]   +1  css/css-tables/fixed-layout-2.html
- FAIL => FAIL      [0/4]   -2  css/css-tables/height-distribution/computing-row-measure-0.html
- REM               [1/2]   -1  css/css-tables/table-height-distribution-proportional.html
- REM               [1/1]   -1  css/css-tables/table-height-distribution-with-border-spacing.html
- REM               [6/6]   -6  css/css-tables/table-stretch-in-flex-and-grid.html
+ FAIL => FAIL     [6/31]   +1  css/css-tables/tentative/colspan-redistribution.html
+ FAIL => FAIL    [17/33]   +4  css/css-tables/tentative/column-widths.html
+ FAIL => PASS      [7/7]   +1  css/css-tables/tentative/table-limited-quirks.html
+ FAIL => FAIL      [4/7]   +1  css/css-tables/tentative/table-quirks.html
- REM               [1/1]   -1  css/css-tables/visibility-collapse-colgroup-crash.html
- FAIL => FAIL      [0/4]   -2  css/css-tables/width-distribution/computing-column-measure-0.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-decorating-box-002.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-propagated-ink-overflow.html
- REM               [0/1]   +0  css/css-text-decor/text-decoration-thickness-linethrough-block-001.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-thickness-linethrough-descendant-001.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-thickness-linethrough-descendant-002.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-thickness-linethrough-descendant-003.html
- REM               [1/1]   -1  css/css-text-decor/text-decoration-thickness-linethrough-descendant-004.html
- REM               [0/1]   +0  css/css-text-decor/text-decoration-thickness-overline-block-001.html
- REM               [1/1]   -1  css/css-text-decor/text-underline-position-horizontal2.html
- REM               [1/1]   -1  css/css-text/line-break/line-break-quotation-double-001.html
- REM               [1/1]   -1  css/css-text/line-break/line-break-quotation-double-002.html
- REM               [0/1]   +0  css/css-text/line-break/line-break-quotation-double-cjk-001.html
- REM               [0/1]   +0  css/css-text/line-break/line-break-quotation-double-cjk-002.html
- REM               [1/1]   -1  css/css-text/line-break/line-break-quotation-double-cjk-003.html
- REM               [0/7]   +0  css/css-text/parsing/white-space-trim-computed.html
- REM               [7/7]   -7  css/css-text/parsing/white-space-trim-invalid.html
- REM              [0/11]   +0  css/css-text/parsing/white-space-trim-valid.html
- REM               [1/1]   -1  css/css-text/text-align/text-align-justify-block-in-inline.html
- REM               [1/1]   -1  css/css-text/text-align/text-align-last-justify-block-in-inline.html
- REM               [1/1]   -1  css/css-text/text-autospace/crashtests/text-autospace-ruby-crash.html
- REM               [0/1]   +0  css/css-text/text-indent/text-indent-each-line-after-block-level-box.html
- REM               [8/8]   -8  css/css-text/text-transform/text-transform-georgian.html
- REM               [0/1]   +0  css/css-text/white-space/trailing-space-before-block-in-inline-001.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-atomic-inline.html
- REM               [1/1]   -1  css/css-text/white-space/white-space-trim-block-in-inline.html
- REM               [1/1]   -1  css/css-text/white-space/white-space-trim-break-spaces.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-content.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-discard-after.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-discard-before-after.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-discard-before.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-discard-inner.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-dynamic.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-generated-content.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-inline-block-dynamic.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-inline-block.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-interaction.html
- REM               [4/8]   -4  css/css-text/white-space/white-space-trim-intrinsic-width.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-nested.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-rtl.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-white-space.html
- REM               [0/1]   +0  css/css-text/white-space/white-space-trim-wrap.html
- REM               [1/1]   -1  css/css-text/wrap-inside/wrap-inside-auto.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-block-child.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-break-all.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-break-before-then-inside.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-dynamic.html
- REM               [1/1]   -1  css/css-text/wrap-inside/wrap-inside-avoid-forced-break.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-inline-block-child.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-inline-flex-child.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-inline-grid-child.html
- REM               [1/1]   -1  css/css-text/wrap-inside/wrap-inside-avoid-inline-table-child.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-keeps-box-together.html
- REM               [1/1]   -1  css/css-text/wrap-inside/wrap-inside-avoid-last-resort.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-line-break-anywhere.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-nested-auto.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-nested-deep.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-nested-only.html
- REM               [0/1]   +0  css/css-text/wrap-inside/wrap-inside-avoid-nested.html
- REM               [1/1]   -1  css/css-text/wrap-inside/wrap-inside-avoid-nowrap-child.html
# ... and 124 more (see the workflow logs)

Generated by the WPT workflow.

@yangkx1024
yangkx1024 marked this pull request as ready for review October 30, 2026 07:31
yangkx1024 added a commit to yangkx1024/blitz that referenced this pull request Oct 30, 2026
Making a column with a length width a `minmax(min-content,
max-content)` track let cells spanning it widen it too, where browsers
give a spanning cell's extra width to the other columns (WPT
css/css-tables computing-row-measure-1, colspan-redistribution tables
18 and 25). The track now stays fixed, and before the grid runs it is
widened to the largest min-content width of the cells that originate in
it, as in the upstream pull request (DioxusLabs#1345).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In the auto table layout algorithm a column's length width (from a cell
in the first row or a `<col>`) became a fixed grid track, so content
wider than it overflowed into the next column. GitHub's notification
mail, for example, heads a column `<th style="width: 24px">Status</th>`,
and the word was painted over the next header.

Browsers widen such a column to the min-content width of the cells that
originate in it, and no further. Such a column now gets a
`minmax(min-content, fit-content(<width>))` track, and its cells report
the larger of their min-content width (measured without their own
`width`) and the column's width as both of their intrinsic widths. The
track therefore grows to fit those cells but not cells spanning it,
which still widen the other columns rather than this one. A column with
only spanning cells keeps its fixed track. The fixed table layout is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yangkx1024
yangkx1024 force-pushed the table-cell-width-minimum branch from 582b5e5 to 2dce6b9 Compare October 30, 2026 07:57

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant