layout: Add initial support for row height distribution (#31421)

This change adds a version of row height distribution that follows the
distribtuion algorithm used for tables in Blink's LayoutNG. This is just
an intermediate step toward implementing a distribution algorithm for
both rows and columns more similar to Layout NG.

The CSS Table 3 specification is often wrong with regard to web
compatability, which is why we have abandoned it in favor of the Layout
NG algorithm for row height distribution.  this work.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Martin Robinson 2024-02-29 13:12:54 +01:00 committed by GitHub
parent 31cfaf290d
commit 127aa657c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 591 additions and 302 deletions

View file

@ -1,2 +0,0 @@
[clear-applies-to-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-003.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-004.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-005.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-006.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-007.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-013.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[clear-applies-to-014.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[float-applies-to-013.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[float-applies-to-014.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[height-table-cell-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[padding-applies-to-013a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[row-visibility-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[separated-border-model-004e.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-cell-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-height-algorithm-008a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-height-algorithm-008b.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-height-algorithm-008c.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-visual-layout-026a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-visual-layout-026b.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-visual-layout-026c.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-visual-layout-026d.xht]
expected: FAIL

View file

@ -1,12 +0,0 @@
[border-spacing-included-in-sizes-001.html]
[tbody 1]
expected: FAIL
[tbody 2]
expected: FAIL
[tbody 3]
expected: FAIL
[tfoot tr 4]
expected: FAIL

View file

@ -1,15 +0,0 @@
[bounding-box-computation-1.html]
[Table-cell is 100px tall]
expected: FAIL
[Table-row is 100px tall]
expected: FAIL
[Table-row-group is 100px tall]
expected: FAIL
[Table-column is 100px tall]
expected: FAIL
[Table-column-group is 100px tall]
expected: FAIL

View file

@ -1,3 +0,0 @@
[chrome-rowspan-bug.html]
[table tracks correct use of rowspan]
expected: FAIL

View file

@ -2,9 +2,6 @@
[main table 1]
expected: FAIL
[main table 2]
expected: FAIL
[main table 4]
expected: FAIL
@ -31,3 +28,6 @@
[main table 3]
expected: FAIL
[main table 2]
expected: FAIL

View file

@ -1,2 +0,0 @@
[fixup-dynamic-anonymous-table-001.html]
expected: FAIL

View file

@ -1,10 +1,4 @@
[computing-row-measure-0.html]
[Checking intermediate min-content height for span 1 (1)]
expected: FAIL
[Checking intermediate min-content height for span 1 (3)]
expected: FAIL
[Checking intermediate min-content height for span 1 (2)]
expected: FAIL

View file

@ -1,9 +1,9 @@
[computing-row-measure-1.html]
[Checking intermediate min-content width for span 2 (4)]
expected: FAIL
[Checking intermediate min-content width for span 2 (1)]
expected: FAIL
[Checking intermediate min-content width for span 2 (2)]
expected: FAIL
[Checking intermediate min-content width for span 2 (4)]
expected: FAIL

View file

@ -11,26 +11,14 @@
[Border-spacing is added between any two unmerged columns (2)]
expected: FAIL
[Border-spacing is added between any two unmerged rows (2)]
expected: FAIL
[Border-spacing is added between any two unmerged columns (3)]
expected: FAIL
[Border-spacing is added between any two unmerged rows (3)]
expected: FAIL
[Border-spacing is added between any two unmerged columns (4)]
expected: FAIL
[Border-spacing is added between any two unmerged rows (4)]
expected: FAIL
[Border-spacing is added between any two unmerged columns (5)]
expected: FAIL
[Border-spacing is added between any two unmerged rows (5)]
expected: FAIL
[Explicitely defined rows are not merged]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-change-span-bg-invalidation-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[subpixel-table-cell-height-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[subpixel-table-cell-width-002.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[table-cell-scroll-height.html]
[scrollHeight on scrollable table cell]
expected: FAIL

View file

@ -2,9 +2,6 @@
[2.1. An anonymous table-row box must be generated around each sequence of consecutive children of a table-root box which are not proper table child boxes. (1/2)]
expected: FAIL
[2.1. An anonymous table-row box must be generated around each sequence of consecutive children of a table-root box which are not proper table child boxes. (2/2)]
expected: FAIL
[2.2. An anonymous table-row box must be generated around each sequence of consecutive children of a table-row-grouping box which are not table-row boxes. (1/3)]
expected: FAIL

View file

@ -2,14 +2,5 @@
[table, .display-table 1]
expected: FAIL
[table, .display-table 2]
expected: FAIL
[table, .display-table 3]
expected: FAIL
[table, .display-table 4]
expected: FAIL
[table, .display-table 5]
expected: FAIL

View file

@ -14,9 +14,6 @@
[table 6]
expected: FAIL
[table 7]
expected: FAIL
[table 9]
expected: FAIL
@ -85,3 +82,6 @@
[table 8]
expected: FAIL
[table 7]
expected: FAIL

View file

@ -1,4 +1,16 @@
[rowspan-height-redistribution.html]
[table 7]
expected: FAIL
[table 8]
expected: FAIL
[table 22]
expected: FAIL
[table 23]
expected: FAIL
[table 2]
expected: FAIL
@ -14,38 +26,41 @@
[table 6]
expected: FAIL
[table 7]
expected: FAIL
[table 8]
expected: FAIL
[table 9]
expected: FAIL
[table 10]
expected: FAIL
[table 11]
expected: FAIL
[table 12]
expected: FAIL
[table 13]
expected: FAIL
[table 14]
expected: FAIL
[table 15]
expected: FAIL
[table 16]
expected: FAIL
[table 17]
expected: FAIL
[table 18]
expected: FAIL
[table 19]
[table 20]
expected: FAIL
[table 21]
expected: FAIL
[table 22]
expected: FAIL
[table 23]
expected: FAIL
[table 20]
[table 24]
expected: FAIL

View file

@ -56,9 +56,6 @@
[table 23]
expected: FAIL
[table 24]
expected: FAIL
[table 25]
expected: FAIL

View file

@ -14,9 +14,6 @@
[table 6]
expected: FAIL
[table 7]
expected: FAIL
[table 9]
expected: FAIL
@ -37,3 +34,6 @@
[table 15]
expected: FAIL
[table 7]
expected: FAIL

View file

@ -26,9 +26,6 @@
[table 11]
expected: FAIL
[table 12]
expected: FAIL
[table 14]
expected: FAIL
@ -58,3 +55,6 @@
[table 26]
expected: FAIL
[table 12]
expected: FAIL

View file

@ -14,9 +14,6 @@
[table 5]
expected: FAIL
[table 6]
expected: FAIL
[table 7]
expected: FAIL

View file

@ -11,9 +11,6 @@
[table 6]
expected: FAIL
[table 7]
expected: FAIL
[table 8]
expected: FAIL

View file

@ -5,9 +5,6 @@
[table 9]
expected: FAIL
[table 11]
expected: FAIL
[table 5]
expected: FAIL

View file

@ -0,0 +1,6 @@
[visibility-collapse-row-005.html]
[collapsed row should not contribute to overflow]
expected: FAIL
[collapsed section should not contribute to overflow]
expected: FAIL

View file

@ -1,12 +1,6 @@
[computing-column-measure-1.html]
[Checking intermediate min-content height for span 2 (1)]
[Checking intermediate min-content height for span 2 (4)]
expected: FAIL
[Checking intermediate min-content height for span 2 (2)]
expected: FAIL
[Checking intermediate min-content height for span 2 (3)]
expected: FAIL
[Checking intermediate min-content height for span 2 (4)]
expected: FAIL