Fix size of tables in flow layout (#31455)

* Fix size of tables in flow layout

The contents of a table can make it bigger than what we would expect
from its 'width', 'min-width', 'height' and ' min-height' properties.
Also, 'width: auto' doesn't stretch it to fill the containing block.

We had to refactor the resolution of margins to happen after layout,
otherwise 'auto' margins wouldn't align correctly.

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Feedback

* Consistently use `containing_block_for_table` in table layout

* Update test result

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Oriol Brufau 2024-03-02 02:39:41 +01:00 committed by GitHub
parent c23999941a
commit 50fdb82246
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 289 additions and 388 deletions

View file

@ -1,24 +0,0 @@
[absolute-tables-001.html]
[.tbl 1]
expected: FAIL
[.tbl 2]
expected: FAIL
[.tbl 3]
expected: FAIL
[.tbl 4]
expected: FAIL
[.tbl 5]
expected: FAIL
[.tbl 6]
expected: FAIL
[.tbl 7]
expected: FAIL
[.tbl 8]
expected: FAIL

View file

@ -1,2 +0,0 @@
[anonymous-table-cell-margin-collapsing.html]
expected: FAIL

View file

@ -1,15 +0,0 @@
[bounding-box-computation-2.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,7 +1,4 @@
[bounding-box-computation-3.html]
[Control test: Table width is 120px]
expected: FAIL
[First (empty) table-row-group should be located at 10px left]
expected: FAIL

View file

@ -8,9 +8,6 @@
[main table 5]
expected: FAIL
[main table 6]
expected: FAIL
[main table 10]
expected: FAIL
@ -20,9 +17,6 @@
[main table 12]
expected: FAIL
[main table 13]
expected: FAIL
[main table 9]
expected: FAIL

View file

@ -1,6 +1,3 @@
[dynamic-rowspan-change.html]
[main table 1]
expected: FAIL
[main table 2]
expected: FAIL

View file

@ -1,2 +0,0 @@
[html-display-table.html]
expected: FAIL

View file

@ -1,9 +0,0 @@
[html-to-css-mapping-1.html]
[HTML -> CSS Mapping is applied correctly on proper table markup (border-spacing, padding)]
expected: FAIL
[HTML -> CSS Mapping is applied correctly on improper table markup (no td => border-spacing, but no padding)]
expected: FAIL
[HTML -> CSS Mapping is applied correctly on empty table markup (no content => no border-spacing, no padding)]
expected: FAIL

View file

@ -1,15 +1,9 @@
[html5-table-formatting-1.html]
[Empty tables can still get a lsyout]
expected: FAIL
[Empty tables do not take table-columns into account]
expected: FAIL
[Table-columns are taken into account after missing cells are generated (empty line)]
expected: FAIL
[Table-columns are taken into account after missing cells are generated (partially empty line)]
expected: FAIL
[Table-columns are taken into account after missing cells are generated (non-empty line)]
[Empty tables do not take table-rows into account]
expected: FAIL

View file

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

View file

@ -1,13 +1,7 @@
[html5-table-formatting-3.html]
[Control test for table-cell padding and border-spacing, etc (width)]
expected: FAIL
[Anonymous consecutive columns spanned by the same set of cells are merged]
expected: FAIL
[Explicitely-defined consecutive columns spanned by the same set of cells are not merged]
expected: FAIL
[Explicitely-defined consecutive columns spanned by the same set of cells are not merged, and cells span across border-spacing]
expected: FAIL

View file

@ -1,3 +0,0 @@
[html5-table-formatting-fixed-layout-1.html]
[Redundant columns of fixed-layout tables are not being merged]
expected: FAIL

View file

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

View file

@ -1,2 +0,0 @@
[min-max-size-table-content-box.html]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -59,9 +59,6 @@
[table 24]
expected: FAIL
[table 25]
expected: FAIL
[table 26]
expected: FAIL

View file

@ -2,48 +2,24 @@
[table 1]
expected: FAIL
[table 2]
expected: FAIL
[table 3]
expected: FAIL
[table 5]
expected: FAIL
[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
@ -53,9 +29,6 @@
[table 19]
expected: FAIL
[table 20]
expected: FAIL
[table 21]
expected: FAIL
@ -74,23 +47,14 @@
[table 26]
expected: FAIL
[table 27]
expected: FAIL
[table 28]
expected: FAIL
[table 29]
expected: FAIL
[table 30]
expected: FAIL
[table 31]
expected: FAIL
[table 32]
expected: FAIL
[table 33]
expected: FAIL
[table 4]
expected: FAIL

View file

@ -13,3 +13,6 @@
[table's width inside grid width:max-content is infinite]
expected: FAIL
[table's width inside a table cell is infinite]
expected: FAIL

View file

@ -5,32 +5,11 @@
[table 5]
expected: FAIL
[table 6]
[table 16]
expected: FAIL
[table 7]
expected: FAIL
[table 8]
expected: FAIL
[table 9]
expected: FAIL
[table 11]
expected: FAIL
[table 12]
[table 1]
expected: FAIL
[table 13]
expected: FAIL
[table 14]
expected: FAIL
[table 15]
expected: FAIL
[table 16]
expected: FAIL

View file

@ -5,8 +5,5 @@
[table 2]
expected: FAIL
[table 5]
expected: FAIL
[table 3]
expected: FAIL

View file

@ -1,7 +1,4 @@
[table-width-redistribution-fixed.html]
[table 1]
expected: FAIL
[table 3]
expected: FAIL

View file

@ -41,8 +41,5 @@
[table 20]
expected: FAIL
[table 21]
expected: FAIL
[table 22]
expected: FAIL

View file

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

View file

@ -5,9 +5,6 @@
[table 2]
expected: FAIL
[table 5]
expected: FAIL
[table 6]
expected: FAIL
@ -23,8 +20,5 @@
[table 11]
expected: FAIL
[table 13]
expected: FAIL
[table 14]
expected: FAIL

View file

@ -1,3 +0,0 @@
[visibility-hidden-col-001.html]
[visibility:hidden doesn't change table width]
expected: FAIL

View file

@ -1,3 +0,0 @@
[visibility-hidden-nested-001.html]
[table visibility:hidden doesn't change table width]
expected: FAIL

View file

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

View file

@ -1,3 +0,0 @@
[computing-column-measure-2.html]
[Table recalculations should match the reference]
expected: FAIL

View file

@ -1,3 +0,0 @@
[computing-table-width-1.html]
[The box should be 300px since that is the size of the content]
expected: FAIL

View file

@ -1,3 +0,0 @@
[distribution-algo-1.html]
[The box should be 300px since that is the size of the content]
expected: FAIL

View file

@ -1,3 +0,0 @@
[distribution-algo-2.html]
[The box should be 300px since that is the size of the content]
expected: FAIL

View file

@ -1,3 +0,0 @@
[distribution-algo-min-content-guess.html]
[The box should be 300px since that is the size of the content]
expected: FAIL