From 0cd9c3f2c4433799189f9f283624343c1c24e900 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Sat, 18 May 2024 10:24:23 +0200 Subject: [PATCH] tables: Add a naive implementation of `border-collapse` (#32309) This change adds a very simple implementation of `border-collapse` for tables. No harmonization or merging is done at all for borders. Instead, the largest border for every continuous border sets the size. Instead of merging different border styles, they are squashed to half size -- which isn't great, but ensures appropriate positioning. Co-authored-by: Oriol Brufau --- Cargo.lock | 30 ++--- components/layout_2020/flow/float.rs | 25 ++-- components/layout_2020/table/layout.rs | 114 ++++++++++++++++-- .../border-collapse-no-interpolation.html.ini | 87 ------------- .../tables/border-collapse-offset-001.xht.ini | 2 - .../tables/border-collapse-offset-002.xht.ini | 2 - .../collapsing-border-model-007.xht.ini | 2 - .../collapsing-border-model-008.xht.ini | 2 - .../collapsing-border-model-010a.xht.ini | 2 - .../collapsing-border-model-010b.xht.ini | 2 - .../tables/table-visual-layout-017.xht.ini | 2 - .../tables/table-visual-layout-018.xht.ini | 2 - .../css/CSS2/text/bidi-flag-emoji-02.html.ini | 2 - .../position-sticky-table-parts.html.ini | 2 - .../css-tables/background-clip-001.html.ini | 2 - ...out-excess-width-distribution-001.html.ini | 3 - ...eight-given-to-all-row-groups-001.html.ini | 2 - ...eight-given-to-all-row-groups-002.html.ini | 2 - ...eight-given-to-all-row-groups-003.html.ini | 3 - ...eight-given-to-all-row-groups-004.html.ini | 3 - ...eight-given-to-all-row-groups-005.html.ini | 2 - .../meta/css/css-tables/inheritance.html.ini | 6 - .../internal-containing-block-001.html.ini | 2 - .../parsing/border-collapse-computed.html.ini | 6 - .../parsing/border-collapse-valid.html.ini | 6 - .../rowspan-height-redistribution.html.ini | 57 --------- .../visibility-collapse-col-005.html.ini | 3 - ...verflow-wrap-min-content-size-004.html.ini | 2 - .../meta/css/cssom/serialize-values.html.ini | 9 -- .../tables/table-cell-width-s.html.ini | 2 - .../tables/table-cell-width.html.ini | 2 - .../tables/table-width-s.html.ini | 2 - .../tables/table-width.html.ini | 2 - .../legend-sans-fieldset-display.html.ini | 15 --- ...play_table_cell_intrinsic_width_a.html.ini | 2 - .../meta/gfx-rs-gecko/356774-1.html.ini | 2 - 36 files changed, 126 insertions(+), 285 deletions(-) delete mode 100644 tests/wpt/meta/css/CSS2/tables/border-collapse-offset-001.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/border-collapse-offset-002.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/collapsing-border-model-007.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/collapsing-border-model-008.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010a.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010b.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/table-visual-layout-017.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/tables/table-visual-layout-018.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/text/bidi-flag-emoji-02.html.ini delete mode 100644 tests/wpt/meta/css/css-position/sticky/position-sticky-table-parts.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/background-clip-001.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/fixed-layout-excess-width-distribution-001.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-001.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-002.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-003.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-004.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-005.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/internal-containing-block-001.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/parsing/border-collapse-computed.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/parsing/border-collapse-valid.html.ini delete mode 100644 tests/wpt/meta/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004.html.ini delete mode 100644 tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width-s.html.ini delete mode 100644 tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width.html.ini delete mode 100644 tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width-s.html.ini delete mode 100644 tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width.html.ini delete mode 100644 tests/wpt/mozilla/meta/css/display_table_cell_intrinsic_width_a.html.ini delete mode 100644 tests/wpt/mozilla/meta/gfx-rs-gecko/356774-1.html.ini diff --git a/Cargo.lock b/Cargo.lock index 8866a48e114..2b8ec154adc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -165,9 +165,9 @@ checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "app_units" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08048ef9fa8600604791786712c3a9bad1038415b91845761ff1b3305b1ed187" +checksum = "d3a46058e45b48cf55b729e4ae34007fa904ea70cfcf2a0fa21dacf1441e521c" dependencies = [ "num-traits", "serde", @@ -1259,7 +1259,7 @@ dependencies = [ [[package]] name = "derive_common" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "darling", "proc-macro2", @@ -3640,7 +3640,7 @@ dependencies = [ [[package]] name = "malloc_size_of" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "accountable-refcell", "app_units", @@ -5235,7 +5235,7 @@ dependencies = [ [[package]] name = "selectors" version = "0.24.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "bitflags 2.5.0", "cssparser", @@ -5523,7 +5523,7 @@ dependencies = [ [[package]] name = "servo_arc" version = "0.2.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "nodrop", "serde", @@ -5533,7 +5533,7 @@ dependencies = [ [[package]] name = "servo_atoms" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "string_cache", "string_cache_codegen", @@ -5731,7 +5731,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "size_of_test" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "static_assertions", ] @@ -5872,7 +5872,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_prefs" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" [[package]] name = "strict-num" @@ -5909,7 +5909,7 @@ dependencies = [ [[package]] name = "style" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "app_units", "arrayvec", @@ -5968,7 +5968,7 @@ dependencies = [ [[package]] name = "style_config" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "lazy_static", ] @@ -5976,7 +5976,7 @@ dependencies = [ [[package]] name = "style_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "darling", "derive_common", @@ -6007,7 +6007,7 @@ dependencies = [ [[package]] name = "style_traits" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "app_units", "bitflags 2.5.0", @@ -6370,7 +6370,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "to_shmem" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "cssparser", "servo_arc", @@ -6383,7 +6383,7 @@ dependencies = [ [[package]] name = "to_shmem_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#86f19869e3c044683e4bd1a31326f28e3e67e163" +source = "git+https://github.com/servo/stylo?branch=2024-04-16#fde1b946c24db389f150752cc24c6496b1f537c5" dependencies = [ "darling", "derive_common", diff --git a/components/layout_2020/flow/float.rs b/components/layout_2020/flow/float.rs index 4f86a1ae246..9244989e11f 100644 --- a/components/layout_2020/flow/float.rs +++ b/components/layout_2020/flow/float.rs @@ -175,10 +175,10 @@ impl<'a> PlacementAmongFloats<'a> { let mut min_inline_end = self.max_inline_end; for band in self.current_bands.iter() { if let Some(left) = band.left { - max_inline_start = max_inline_start.max(left); + max_inline_start.max_assign(left); } if let Some(right) = band.right { - min_inline_end = min_inline_end.min(right); + min_inline_end.min_assign(right); } } (max_inline_start, min_inline_end) @@ -459,14 +459,12 @@ impl FloatContext { // Update clear. match new_float.side { FloatSide::Left => { - self.clear_left_position = self - .clear_left_position - .max(new_float_rect.max_block_position()) + self.clear_left_position + .max_assign(new_float_rect.max_block_position()); }, FloatSide::Right => { - self.clear_right_position = self - .clear_right_position - .max(new_float_rect.max_block_position()) + self.clear_right_position + .max_assign(new_float_rect.max_block_position()); }, } @@ -491,20 +489,13 @@ impl FloatContext { // CSS 2.1 ยง 9.5.1 rule 6: The outer top of a floating box may not be higher than the outer // top of any block or floated box generated by an element earlier in the source document. - max_assign_au( - &mut self.ceiling_from_floats, - new_float_rect.start_corner.block, - ); + self.ceiling_from_floats + .max_assign(new_float_rect.start_corner.block); new_float_rect.start_corner } } -fn max_assign_au(current: &mut Au, other: Au) { - let max_value = std::cmp::max(current.0, other.0); - *current = Au(max_value); -} - /// Information needed to place an object so that it doesn't collide with existing floats. #[derive(Clone, Debug)] pub struct PlacementInfo { diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index 8eac23103b1..5ea7cd826ce 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -77,6 +77,13 @@ struct ColumnLayout { has_originating_cells: bool, } +/// The calculated collapsed borders. +#[derive(Clone, Debug, Default)] +struct CollapsedBorders { + block: Vec, + inline: Vec, +} + /// A helper struct that performs the layout of the box tree version /// of a table into the fragment tree version. This implements /// @@ -95,6 +102,8 @@ pub(crate) struct TableLayout<'a> { row_baselines: Vec, cells_laid_out: Vec>>, basis_for_cell_padding_percentage: Au, + /// Information about collapsed borders. + collapsed_borders: Option, } #[derive(Clone, Debug)] @@ -132,6 +141,7 @@ impl<'a> TableLayout<'a> { row_baselines: Vec::new(), cells_laid_out: Vec::new(), basis_for_cell_padding_percentage: Au::zero(), + collapsed_borders: None, } } @@ -156,7 +166,14 @@ impl<'a> TableLayout<'a> { .style .padding(writing_mode) .percentages_relative_to(Length::zero()); - let border = cell.style.border_width(writing_mode); + + let border = self + .get_collapsed_borders_for_cell( + cell, + TableSlotCoordinates::new(column_index, row_index), + ) + .unwrap_or_else(|| cell.style.border_width(writing_mode)); + let padding_border_sums = LogicalVec2 { inline: (padding.inline_sum() + border.inline_sum()).into(), block: (padding.block_sum() + border.block_sum()).into(), @@ -605,6 +622,7 @@ impl<'a> TableLayout<'a> { writing_mode: WritingMode, ) -> ContentSizes { self.compute_track_constrainedness_and_has_originating_cells(writing_mode); + self.compute_border_collapse(writing_mode); self.compute_cell_measures(layout_context, writing_mode); self.compute_column_measures(writing_mode); @@ -622,7 +640,9 @@ impl<'a> TableLayout<'a> { }); // TODO: GRIDMAX should never be smaller than GRIDMIN! - grid_min_max.max_content = grid_min_max.max_content.max(grid_min_max.min_content); + grid_min_max + .max_content + .max_assign(grid_min_max.min_content); let inline_border_spacing = self.table.total_border_spacing().inline; grid_min_max.min_content += inline_border_spacing; @@ -1012,9 +1032,16 @@ impl<'a> TableLayout<'a> { total_width += self.distributed_column_widths[width_index]; } - let border = cell - .style - .border_width(containing_block_for_table.style.writing_mode); + let border = self + .get_collapsed_borders_for_cell( + cell, + TableSlotCoordinates::new(column_index, row_index), + ) + .unwrap_or_else(|| { + cell.style + .border_width(containing_block_for_table.style.writing_mode) + }); + let padding = cell .style .padding(containing_block_for_table.style.writing_mode) @@ -1085,7 +1112,7 @@ impl<'a> TableLayout<'a> { let outer_block_size = layout.outer_block_size(); if cell.rowspan == 1 { - max_row_height = max_row_height.max(outer_block_size); + max_row_height.max_assign(outer_block_size); } if cell.effective_vertical_align() == VerticalAlignKeyword::Baseline { @@ -1093,13 +1120,13 @@ impl<'a> TableLayout<'a> { let border_padding_start = layout.border.block_start + layout.padding.block_start; let border_padding_end = layout.border.block_end + layout.padding.block_end; - max_ascent = max_ascent.max(ascent + border_padding_start.into()); + max_ascent.max_assign(ascent + border_padding_start.into()); // Only take into account the descent of this cell if doesn't span // rows. The descent portion of the cell in cells that do span rows // may extend into other rows. if cell.rowspan == 1 { - max_descent = max_descent.max( + max_descent.max_assign( layout.layout.content_block_size - ascent + border_padding_end.into(), ); @@ -1130,7 +1157,7 @@ impl<'a> TableLayout<'a> { let row_measure = self .table .get_row_measure_for_row_at_index(writing_mode, row_index); - row_sizes[row_index] = row_sizes[row_index].max(row_measure.content_sizes.min_content); + row_sizes[row_index].max_assign(row_measure.content_sizes.min_content); let mut percentage = match self.table.rows.get(row_index) { Some(row) => { @@ -1153,8 +1180,7 @@ impl<'a> TableLayout<'a> { TableSlot::Cell(_) => { // If this is an originating cell, that isn't spanning, then we make sure the row is // at least big enough to hold the cell. - row_sizes[row_index] = - row_sizes[row_index].max(cell_measure.content_sizes.max_content); + row_sizes[row_index].max_assign(cell_measure.content_sizes.max_content); continue; }, _ => continue, @@ -1661,6 +1687,72 @@ impl<'a> TableLayout<'a> { ))); } } + + fn compute_border_collapse(&mut self, writing_mode: WritingMode) { + if self.table.style.get_inherited_table().border_collapse != BorderCollapse::Collapse { + self.collapsed_borders = None; + return; + } + + let mut collapsed_borders = CollapsedBorders { + block: vec![Au::zero(); self.table.size.height + 1], + inline: vec![Au::zero(); self.table.size.width + 1], + }; + + for row_index in 0..self.table.size.height { + for column_index in 0..self.table.size.width { + let cell = match self.table.slots[row_index][column_index] { + TableSlot::Cell(ref cell) => cell, + _ => continue, + }; + + let border = cell.style.border_width(writing_mode); + collapsed_borders.block[row_index].max_assign(border.block_start.into()); + collapsed_borders.block[row_index + cell.rowspan] + .max_assign(border.block_end.into()); + collapsed_borders.inline[column_index].max_assign(border.inline_start.into()); + collapsed_borders.inline[column_index + cell.colspan] + .max_assign(border.inline_end.into()); + } + } + + self.collapsed_borders = Some(collapsed_borders); + } + + fn get_collapsed_borders_for_cell( + &self, + cell: &TableSlotCell, + coordinates: TableSlotCoordinates, + ) -> Option> { + let Some(ref collapsed_borders) = self.collapsed_borders else { + return None; + }; + + let end_x = coordinates.x + cell.colspan; + let end_y = coordinates.y + cell.rowspan; + let mut result: LogicalSides = LogicalSides { + inline_start: collapsed_borders.inline[coordinates.x], + inline_end: collapsed_borders.inline[end_x], + block_start: collapsed_borders.block[coordinates.y], + block_end: collapsed_borders.block[end_y], + } + .into(); + + if coordinates.x != 0 { + result.inline_start = result.inline_start / 2.0; + } + if coordinates.y != 0 { + result.block_start = result.block_start / 2.0; + } + if end_x != self.table.size.width { + result.inline_end = result.inline_end / 2.0; + } + if end_y != self.table.size.height { + result.block_end = result.block_end / 2.0; + } + + Some(result) + } } struct RowFragmentLayout<'a> { diff --git a/tests/wpt/meta/css/CSS2/tables/border-collapse-no-interpolation.html.ini b/tests/wpt/meta/css/CSS2/tables/border-collapse-no-interpolation.html.ini index 78be51fcf23..c528d241e1b 100644 --- a/tests/wpt/meta/css/CSS2/tables/border-collapse-no-interpolation.html.ini +++ b/tests/wpt/meta/css/CSS2/tables/border-collapse-no-interpolation.html.ini @@ -8,60 +8,6 @@ [CSS Transitions: property from [initial\] to [collapse\] at (0.3) should be [initial\]] expected: FAIL - [CSS Transitions: property from [initial\] to [collapse\] at (0.5) should be [collapse\]] - expected: FAIL - - [CSS Transitions: property from [initial\] to [collapse\] at (0.6) should be [collapse\]] - expected: FAIL - - [CSS Transitions: property from [initial\] to [collapse\] at (1) should be [collapse\]] - expected: FAIL - - [CSS Transitions: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (-0.3) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (0) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (0.3) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (0.5) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (0.6) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (1) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition: all: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (-0.3) should be [initial\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (0) should be [initial\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (0.3) should be [initial\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (0.5) should be [collapse\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (0.6) should be [collapse\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (1) should be [collapse\]] - expected: FAIL - - [CSS Animations: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] - expected: FAIL - [Web Animations: property from [initial\] to [collapse\] at (-0.3) should be [initial\]] expected: FAIL @@ -83,15 +29,6 @@ [Web Animations: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] expected: FAIL - [CSS Transitions: property from [initial\] to [collapse\] at (-0.3) should be [collapse\]] - expected: FAIL - - [CSS Transitions: property from [initial\] to [collapse\] at (0) should be [collapse\]] - expected: FAIL - - [CSS Transitions: property from [initial\] to [collapse\] at (0.3) should be [collapse\]] - expected: FAIL - [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (-0.3) should be [initial\]] expected: FAIL @@ -101,18 +38,6 @@ [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (0.3) should be [initial\]] expected: FAIL - [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (0.5) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (0.6) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (1) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-behavior:allow-discrete: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] - expected: FAIL - [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (-0.3) should be [initial\]] expected: FAIL @@ -121,15 +46,3 @@ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (0.3) should be [initial\]] expected: FAIL - - [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (0.5) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (0.6) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (1) should be [collapse\]] - expected: FAIL - - [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial\] to [collapse\] at (1.5) should be [collapse\]] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-001.xht.ini b/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-001.xht.ini deleted file mode 100644 index 5eb08879f5d..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-collapse-offset-001.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-002.xht.ini b/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-002.xht.ini deleted file mode 100644 index 0949aad716a..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/border-collapse-offset-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-collapse-offset-002.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-007.xht.ini b/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-007.xht.ini deleted file mode 100644 index 321f7ff4b22..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-007.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[collapsing-border-model-007.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-008.xht.ini b/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-008.xht.ini deleted file mode 100644 index f25121149e3..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-008.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[collapsing-border-model-008.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010a.xht.ini b/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010a.xht.ini deleted file mode 100644 index e9bf7e68d55..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010a.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[collapsing-border-model-010a.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010b.xht.ini b/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010b.xht.ini deleted file mode 100644 index eb0cbc88ca1..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/collapsing-border-model-010b.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[collapsing-border-model-010b.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/table-visual-layout-017.xht.ini b/tests/wpt/meta/css/CSS2/tables/table-visual-layout-017.xht.ini deleted file mode 100644 index e458f0a895c..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/table-visual-layout-017.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-visual-layout-017.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/table-visual-layout-018.xht.ini b/tests/wpt/meta/css/CSS2/tables/table-visual-layout-018.xht.ini deleted file mode 100644 index 08e1831b912..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/table-visual-layout-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-visual-layout-018.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/text/bidi-flag-emoji-02.html.ini b/tests/wpt/meta/css/CSS2/text/bidi-flag-emoji-02.html.ini deleted file mode 100644 index 667f617cb2a..00000000000 --- a/tests/wpt/meta/css/CSS2/text/bidi-flag-emoji-02.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[bidi-flag-emoji-02.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-position/sticky/position-sticky-table-parts.html.ini b/tests/wpt/meta/css/css-position/sticky/position-sticky-table-parts.html.ini deleted file mode 100644 index c62ed871371..00000000000 --- a/tests/wpt/meta/css/css-position/sticky/position-sticky-table-parts.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[position-sticky-table-parts.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/background-clip-001.html.ini b/tests/wpt/meta/css/css-tables/background-clip-001.html.ini deleted file mode 100644 index d5a95c7e32c..00000000000 --- a/tests/wpt/meta/css/css-tables/background-clip-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-clip-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/fixed-layout-excess-width-distribution-001.html.ini b/tests/wpt/meta/css/css-tables/fixed-layout-excess-width-distribution-001.html.ini deleted file mode 100644 index 5d81ad8624d..00000000000 --- a/tests/wpt/meta/css/css-tables/fixed-layout-excess-width-distribution-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[fixed-layout-excess-width-distribution-001.html] - [#theTable 1] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-001.html.ini b/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-001.html.ini deleted file mode 100644 index e4becddcbaf..00000000000 --- a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[extra-height-given-to-all-row-groups-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-002.html.ini b/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-002.html.ini deleted file mode 100644 index 638183bef99..00000000000 --- a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[extra-height-given-to-all-row-groups-002.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-003.html.ini b/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-003.html.ini deleted file mode 100644 index 185ec7732e4..00000000000 --- a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-003.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[extra-height-given-to-all-row-groups-003.html] - [#theTable 1] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-004.html.ini b/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-004.html.ini deleted file mode 100644 index 6ab873845c8..00000000000 --- a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-004.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[extra-height-given-to-all-row-groups-004.html] - [#theTable 1] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-005.html.ini b/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-005.html.ini deleted file mode 100644 index 01d00ac3ae1..00000000000 --- a/tests/wpt/meta/css/css-tables/height-distribution/extra-height-given-to-all-row-groups-005.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[extra-height-given-to-all-row-groups-005.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/inheritance.html.ini b/tests/wpt/meta/css/css-tables/inheritance.html.ini index de530fe6947..fda506bd73c 100644 --- a/tests/wpt/meta/css/css-tables/inheritance.html.ini +++ b/tests/wpt/meta/css/css-tables/inheritance.html.ini @@ -1,10 +1,4 @@ [inheritance.html] - [Property border-collapse has initial value separate] - expected: FAIL - - [Property border-collapse inherits] - expected: FAIL - [Property border-spacing has initial value 0px 0px] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/internal-containing-block-001.html.ini b/tests/wpt/meta/css/css-tables/internal-containing-block-001.html.ini deleted file mode 100644 index 6694febf2dd..00000000000 --- a/tests/wpt/meta/css/css-tables/internal-containing-block-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[internal-containing-block-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/parsing/border-collapse-computed.html.ini b/tests/wpt/meta/css/css-tables/parsing/border-collapse-computed.html.ini deleted file mode 100644 index cd6824a631e..00000000000 --- a/tests/wpt/meta/css/css-tables/parsing/border-collapse-computed.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[border-collapse-computed.html] - [Property border-collapse value 'separate'] - expected: FAIL - - [Property border-collapse value 'collapse'] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/parsing/border-collapse-valid.html.ini b/tests/wpt/meta/css/css-tables/parsing/border-collapse-valid.html.ini deleted file mode 100644 index a3c4b05719b..00000000000 --- a/tests/wpt/meta/css/css-tables/parsing/border-collapse-valid.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[border-collapse-valid.html] - [e.style['border-collapse'\] = "separate" should set the property value] - expected: FAIL - - [e.style['border-collapse'\] = "collapse" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/rowspan-height-redistribution.html.ini b/tests/wpt/meta/css/css-tables/tentative/rowspan-height-redistribution.html.ini index c415da3c2c6..44ecb21129b 100644 --- a/tests/wpt/meta/css/css-tables/tentative/rowspan-height-redistribution.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/rowspan-height-redistribution.html.ini @@ -1,7 +1,4 @@ [rowspan-height-redistribution.html] - [table 7] - expected: FAIL - [table 8] expected: FAIL @@ -10,57 +7,3 @@ [table 23] expected: FAIL - - [table 2] - expected: FAIL - - [table 3] - expected: FAIL - - [table 4] - expected: FAIL - - [table 5] - expected: FAIL - - [table 6] - 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 20] - expected: FAIL - - [table 21] - expected: FAIL - - [table 24] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/visibility-collapse-col-005.html.ini b/tests/wpt/meta/css/css-tables/visibility-collapse-col-005.html.ini index ba36584d30b..98aed8b9e60 100644 --- a/tests/wpt/meta/css/css-tables/visibility-collapse-col-005.html.ini +++ b/tests/wpt/meta/css/css-tables/visibility-collapse-col-005.html.ini @@ -1,6 +1,3 @@ [visibility-collapse-col-005.html] [col visibility:collapse changes table width] expected: FAIL - - [col visibility:collapse doesn't change table height] - expected: FAIL diff --git a/tests/wpt/meta/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004.html.ini b/tests/wpt/meta/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004.html.ini deleted file mode 100644 index 38e4b2dcd29..00000000000 --- a/tests/wpt/meta/css/css-text/overflow-wrap/overflow-wrap-min-content-size-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[overflow-wrap-min-content-size-004.html] - expected: FAIL diff --git a/tests/wpt/meta/css/cssom/serialize-values.html.ini b/tests/wpt/meta/css/cssom/serialize-values.html.ini index 322bac37aee..2110b7a1028 100644 --- a/tests/wpt/meta/css/cssom/serialize-values.html.ini +++ b/tests/wpt/meta/css/cssom/serialize-values.html.ini @@ -83,15 +83,6 @@ [list-style-type: lower-roman] expected: FAIL - [border-collapse: collapse] - expected: FAIL - - [border-collapse: separate] - expected: FAIL - - [border-collapse: inherit] - expected: FAIL - [caption-side: top] expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width-s.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width-s.html.ini deleted file mode 100644 index 261f19dd7f7..00000000000 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width-s.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-cell-width-s.html] - expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width.html.ini deleted file mode 100644 index 5073e1f0a94..00000000000 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-cell-width.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-cell-width.html] - expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width-s.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width-s.html.ini deleted file mode 100644 index f1222061141..00000000000 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width-s.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-width-s.html] - expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width.html.ini deleted file mode 100644 index 864cc81c711..00000000000 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/tables/table-width.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-width.html] - expected: FAIL diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display.html.ini index 347f94bc097..d213579b2c3 100644 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display.html.ini +++ b/tests/wpt/meta/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display.html.ini @@ -4,18 +4,3 @@ [.rt] expected: FAIL - - [.table] - expected: FAIL - - [.col] - expected: FAIL - - [.tbody] - expected: FAIL - - [.tr] - expected: FAIL - - [.td] - expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/display_table_cell_intrinsic_width_a.html.ini b/tests/wpt/mozilla/meta/css/display_table_cell_intrinsic_width_a.html.ini deleted file mode 100644 index de0cf2ce598..00000000000 --- a/tests/wpt/mozilla/meta/css/display_table_cell_intrinsic_width_a.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[display_table_cell_intrinsic_width_a.html] - expected: FAIL diff --git a/tests/wpt/mozilla/meta/gfx-rs-gecko/356774-1.html.ini b/tests/wpt/mozilla/meta/gfx-rs-gecko/356774-1.html.ini deleted file mode 100644 index b958c0e4b07..00000000000 --- a/tests/wpt/mozilla/meta/gfx-rs-gecko/356774-1.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[356774-1.html] - expected: FAIL