From 5f399139ae1749d8f13b7200d120f7adcd057d8a Mon Sep 17 00:00:00 2001 From: Oriol Brufau Date: Thu, 29 Feb 2024 16:21:14 +0100 Subject: [PATCH] Fix percentages in CSS tables (#31454) 100% is stored as Percent(1.), not as percent(100.) Co-authored-by: Martin Robinson --- components/layout_2020/table/layout.rs | 6 +++--- .../tentative/table-width-redistribution.html.ini | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index 6404b3a9ff7..29c9b1950ab 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -411,7 +411,7 @@ impl<'a> TableLayout<'a> { let final_intrinsic_percentage_width = column_measure .percentage .0 - .min(100. - total_intrinsic_percentage_width); + .min(1. - total_intrinsic_percentage_width); total_intrinsic_percentage_width += final_intrinsic_percentage_width; column_measure.percentage = Percentage(final_intrinsic_percentage_width); } @@ -1148,7 +1148,7 @@ impl<'a> TableLayout<'a> { }); } - self.rows[row_index].percent = Percentage(percentage.min(100. - total_percentage)); + self.rows[row_index].percent = Percentage(percentage.min(1. - total_percentage)); total_percentage += self.rows[row_index].percent.0; } @@ -1218,7 +1218,7 @@ impl<'a> TableLayout<'a> { if let Some(percentage_resolution_size) = percentage_resolution_size { let get_percent_block_size_deficit = |row_index: usize, track_size: Au| { let size_needed_for_percent = - percentage_resolution_size.scale_by(self.rows[row_index].percent.0 / 100.); + percentage_resolution_size.scale_by(self.rows[row_index].percent.0); (size_needed_for_percent - track_size).max(Au::zero()) }; let percent_block_size_deficit: Au = track_range diff --git a/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution.html.ini b/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution.html.ini index 20e125a8e18..c23a6c4119b 100644 --- a/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution.html.ini @@ -38,9 +38,6 @@ [table 15] expected: FAIL - [table 19] - expected: FAIL - [table 20] expected: FAIL