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 <obrufau@igalia.com>
This commit is contained in:
Martin Robinson 2024-05-18 10:24:23 +02:00 committed by GitHub
parent 5cac276997
commit 0cd9c3f2c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 126 additions and 285 deletions

30
Cargo.lock generated
View file

@ -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",

View file

@ -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 {

View file

@ -77,6 +77,13 @@ struct ColumnLayout {
has_originating_cells: bool,
}
/// The calculated collapsed borders.
#[derive(Clone, Debug, Default)]
struct CollapsedBorders {
block: Vec<Au>,
inline: Vec<Au>,
}
/// A helper struct that performs the layout of the box tree version
/// of a table into the fragment tree version. This implements
/// <https://drafts.csswg.org/css-tables/#table-layout-algorithm>
@ -95,6 +102,8 @@ pub(crate) struct TableLayout<'a> {
row_baselines: Vec<Au>,
cells_laid_out: Vec<Vec<Option<CellLayout>>>,
basis_for_cell_padding_percentage: Au,
/// Information about collapsed borders.
collapsed_borders: Option<CollapsedBorders>,
}
#[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<LogicalSides<Length>> {
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<Length> = 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> {

View file

@ -8,60 +8,6 @@
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (0.3) should be [initial\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (0.5) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (0.6) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (1) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (-0.3) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (0) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (0.3) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (0.5) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (0.6) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (1) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition: all: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (-0.3) should be [initial\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (0) should be [initial\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (0.3) should be [initial\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (0.5) should be [collapse\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (0.6) should be [collapse\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (1) should be [collapse\]]
expected: FAIL
[CSS Animations: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL
[Web Animations: property <border-collapse> from [initial\] to [collapse\] at (-0.3) should be [initial\]]
expected: FAIL
@ -83,15 +29,6 @@
[Web Animations: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (-0.3) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (0) should be [collapse\]]
expected: FAIL
[CSS Transitions: property <border-collapse> from [initial\] to [collapse\] at (0.3) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (-0.3) should be [initial\]]
expected: FAIL
@ -101,18 +38,6 @@
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (0.3) should be [initial\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (0.5) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (0.6) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (1) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <border-collapse> 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 <border-collapse> from [initial\] to [collapse\] at (0.3) should be [initial\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (0.5) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (0.6) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (1) should be [collapse\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <border-collapse> from [initial\] to [collapse\] at (1.5) should be [collapse\]]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-collapse-offset-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-collapse-offset-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[collapsing-border-model-007.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[collapsing-border-model-008.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[collapsing-border-model-010a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[collapsing-border-model-010b.xht]
expected: FAIL

View file

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

View file

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

View file

@ -1,2 +0,0 @@
[bidi-flag-emoji-02.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[position-sticky-table-parts.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[background-clip-001.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[fixed-layout-excess-width-distribution-001.html]
[#theTable 1]
expected: FAIL

View file

@ -1,2 +0,0 @@
[extra-height-given-to-all-row-groups-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[extra-height-given-to-all-row-groups-002.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[extra-height-given-to-all-row-groups-003.html]
[#theTable 1]
expected: FAIL

View file

@ -1,3 +0,0 @@
[extra-height-given-to-all-row-groups-004.html]
[#theTable 1]
expected: FAIL

View file

@ -1,2 +0,0 @@
[extra-height-given-to-all-row-groups-005.html]
expected: FAIL

View file

@ -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

View file

@ -1,2 +0,0 @@
[internal-containing-block-001.html]
expected: FAIL

View file

@ -1,6 +0,0 @@
[border-collapse-computed.html]
[Property border-collapse value 'separate']
expected: FAIL
[Property border-collapse value 'collapse']
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,2 +0,0 @@
[overflow-wrap-min-content-size-004.html]
expected: FAIL

View file

@ -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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,18 +4,3 @@
[.rt]
expected: FAIL
[.table]
expected: FAIL
[.col]
expected: FAIL
[.tbody]
expected: FAIL
[.tr]
expected: FAIL
[.td]
expected: FAIL

View file

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

View file

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