diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 1a86058bde7..c379dc451fc 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -410,6 +410,7 @@ impl FlexContainer { IndependentLayout { fragments, content_block_size: content_block_size.into(), + content_inline_size_for_table: None, baselines: Baselines::default(), } } @@ -1108,6 +1109,7 @@ impl<'a> FlexItem<'a> { flex_context.layout_context, &mut positioning_context, &item_as_containing_block, + &flex_context.containing_block, ); let hypothetical_cross_size = self diff --git a/components/layout_2020/flow/float.rs b/components/layout_2020/flow/float.rs index 96bdf91ee62..fa40ae1bb22 100644 --- a/components/layout_2020/flow/float.rs +++ b/components/layout_2020/flow/float.rs @@ -251,6 +251,18 @@ impl<'a> PlacementAmongFloats<'a> { } } + /// After placing a table and then laying it out, it may turn out wider than what + /// we initially expected. This method takes care of updating the data so that + /// the next place() can find the right area for the new size. + /// Note that if the new size is smaller, placement won't backtrack to consider + /// areas that weren't big enough for the old size. + pub(crate) fn set_inline_size(&mut self, inline_size: Au, pbm: &PaddingBorderMargin) { + self.object_size.inline = inline_size; + self.max_inline_end = (self.float_context.containing_block_info.inline_end - + pbm.margin.inline_end.auto_is(Length::zero).into()) + .max(self.min_inline_start + inline_size); + } + /// After placing an object with `height: auto` (and using the minimum inline and /// block size as the object size) and then laying it out, try to fit the object into /// the current set of bands, given block size after layout and the available inline @@ -939,6 +951,7 @@ impl FloatBox { layout_context, positioning_context, &containing_block_for_children, + &containing_block, ); content_size = LogicalVec2 { inline: inline_size, diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs index 2eedf40987e..fd86b7b0bb1 100644 --- a/components/layout_2020/flow/inline.rs +++ b/components/layout_2020/flow/inline.rs @@ -1940,24 +1940,32 @@ impl IndependentFormattingContext { layout_context, child_positioning_context.as_mut().unwrap(), &containing_block_for_children, + &ifc.containing_block, ); + let (inline_size, block_size) = + match independent_layout.content_inline_size_for_table { + Some(inline) => (inline, independent_layout.content_block_size), + None => { + // https://drafts.csswg.org/css2/visudet.html#block-root-margin + let tentative_block_size = box_size + .block + .auto_is(|| independent_layout.content_block_size.into()); - // https://drafts.csswg.org/css2/visudet.html#block-root-margin - let tentative_block_size = box_size - .block - .auto_is(|| independent_layout.content_block_size.into()); + // https://drafts.csswg.org/css2/visudet.html#min-max-heights + // In this case “applying the rules above again” with a non-auto block-size + // always results in that size. + let block_size = tentative_block_size + .clamp_between_extremums(min_box_size.block, max_box_size.block); - // https://drafts.csswg.org/css2/visudet.html#min-max-heights - // In this case “applying the rules above again” with a non-auto block-size - // always results in that size. - let block_size = tentative_block_size - .clamp_between_extremums(min_box_size.block, max_box_size.block); + (inline_size.into(), block_size.into()) + }, + }; let content_rect = LogicalRect { start_corner: pbm_sums.start_offset(), size: LogicalVec2 { - block: block_size.into(), - inline: inline_size.into(), + block: block_size, + inline: inline_size, }, }; diff --git a/components/layout_2020/flow/mod.rs b/components/layout_2020/flow/mod.rs index 7fadfa8ce97..f1fd2091996 100644 --- a/components/layout_2020/flow/mod.rs +++ b/components/layout_2020/flow/mod.rs @@ -243,6 +243,7 @@ impl BlockFormattingContext { flow_layout.collapsible_margins_in_children.end.solve() + clearance.unwrap_or_else(Au::zero).into()) .into(), + content_inline_size_for_table: None, baselines: flow_layout.baselines, } } @@ -621,14 +622,20 @@ fn layout_in_flow_non_replaced_block_level_same_formatting_context( mut sequential_layout_state: Option<&mut SequentialLayoutState>, collapsible_with_parent_start_margin: Option, ) -> BoxFragment { - let ContainingBlockPaddingBorderAndMargin { + let ContainingBlockPaddingAndBorder { containing_block: containing_block_for_children, pbm, min_box_size, max_box_size, + } = solve_containing_block_padding_and_border_for_in_flow_box(containing_block, style); + let ResolvedMargins { margin, effective_margin_inline_start, - } = solve_containing_block_padding_border_and_margin_for_in_flow_box(containing_block, style); + } = solve_margins( + containing_block, + &pbm, + containing_block_for_children.inline_size.into(), + ); let computed_block_size = style.content_block_size(); let start_margin_can_collapse_with_children = @@ -834,14 +841,12 @@ impl NonReplacedFormattingContext { ); } - let ContainingBlockPaddingBorderAndMargin { + let ContainingBlockPaddingAndBorder { containing_block: containing_block_for_children, pbm, min_box_size, max_box_size, - margin, - effective_margin_inline_start, - } = solve_containing_block_padding_border_and_margin_for_in_flow_box( + } = solve_containing_block_padding_and_border_for_in_flow_box( containing_block, &self.style, ); @@ -850,14 +855,26 @@ impl NonReplacedFormattingContext { layout_context, positioning_context, &containing_block_for_children, + &containing_block, ); - let block_size = containing_block_for_children.block_size.auto_is(|| { - layout.content_block_size.clamp_between_extremums( - min_box_size.block.into(), - max_box_size.block.map(|t| t.into()), - ) - }); + let (block_size, inline_size) = match layout.content_inline_size_for_table { + Some(inline_size) => (layout.content_block_size, inline_size), + None => ( + containing_block_for_children.block_size.auto_is(|| { + layout.content_block_size.clamp_between_extremums( + min_box_size.block.into(), + max_box_size.block.map(|t| t.into()), + ) + }), + containing_block_for_children.inline_size, + ), + }; + + let ResolvedMargins { + margin, + effective_margin_inline_start, + } = solve_margins(containing_block, &pbm, inline_size.into()); let content_rect = LogicalRect { start_corner: LogicalVec2 { @@ -868,7 +885,7 @@ impl NonReplacedFormattingContext { }, size: LogicalVec2 { block: block_size, - inline: containing_block_for_children.inline_size, + inline: inline_size, }, }; @@ -940,20 +957,24 @@ impl NonReplacedFormattingContext { block_size: block_size.map(|t| t.into()), style: &self.style, }, + containing_block, ); - content_size = LogicalVec2 { - inline: inline_size, - block: block_size.auto_is(|| { - layout - .content_block_size - .clamp_between_extremums( - min_box_size.block.into(), - max_box_size.block.map(|t| t.into()), - ) - .into() - }), - }; + if let Some(inline_size) = layout.content_inline_size_for_table { + content_size = LogicalVec2 { + block: layout.content_block_size, + inline: inline_size, + } + .into(); + } else { + content_size = LogicalVec2 { + block: block_size.auto_is(|| { + Length::from(layout.content_block_size) + .clamp_between_extremums(min_box_size.block, max_box_size.block) + }), + inline: inline_size, + }; + } ( clearance, @@ -1013,19 +1034,37 @@ impl NonReplacedFormattingContext { block_size: block_size.map(|t| t.into()), style: &self.style, }, + containing_block, ); - content_size = LogicalVec2 { - inline: proposed_inline_size, - block: block_size.auto_is(|| { - layout - .content_block_size - .clamp_between_extremums( - min_box_size.block.into(), - max_box_size.block.map(|t| t.into()), - ) - .into() - }), - }; + + if let Some(inline_size) = layout.content_inline_size_for_table { + // If this is a table, it's impossible to know the inline size it will take + // up until after trying to place it. If the table doesn't fit into this + // positioning rectangle due to incompatibility in the inline axis, + // then retry at another location. + // Even if it would fit in the inline axis, we may end up having to retry + // at another location due to incompatibility in the block axis. Therefore, + // always update the size in the PlacementAmongFloats as an optimization. + let outer_inline_size = inline_size + pbm.padding_border_sums.inline; + placement.set_inline_size(outer_inline_size, &pbm); + if outer_inline_size > placement_rect.size.inline { + positioning_context.truncate(&positioning_context_length); + continue; + } + content_size = LogicalVec2 { + block: layout.content_block_size, + inline: inline_size, + } + .into(); + } else { + content_size = LogicalVec2 { + block: block_size.auto_is(|| { + Length::from(layout.content_block_size) + .clamp_between_extremums(min_box_size.block, max_box_size.block) + }), + inline: proposed_inline_size, + }; + } // Now we know the block size of this attempted layout of a box with block // size of auto. Try to fit it into our precalculated placement among the @@ -1224,11 +1263,15 @@ fn layout_in_flow_replaced_block_level<'a>( ) } -struct ContainingBlockPaddingBorderAndMargin<'a> { +struct ContainingBlockPaddingAndBorder<'a> { containing_block: ContainingBlock<'a>, pbm: PaddingBorderMargin, min_box_size: LogicalVec2, max_box_size: LogicalVec2>, +} + +struct ResolvedMargins { + /// Used value for the margin properties, as exposed in getComputedStyle(). margin: LogicalSides, /// Distance between the border box and the containing block on the inline-start side. @@ -1240,15 +1283,15 @@ struct ContainingBlockPaddingBorderAndMargin<'a> { effective_margin_inline_start: Length, } -/// Given the style for in in flow box and its containing block, determine the containing -/// block for its children and the margin it should use. +/// Given the style for an in-flow box and its containing block, determine the containing +/// block for its children. /// Note that in the presence of floats, this shouldn't be used for a block-level box -/// that establishes an independent formatting context (or is replaced), since the margins -/// and inline size could then be incorrect. -fn solve_containing_block_padding_border_and_margin_for_in_flow_box<'a>( +/// that establishes an independent formatting context (or is replaced), since the +/// inline size could then be incorrect. +fn solve_containing_block_padding_and_border_for_in_flow_box<'a>( containing_block: &ContainingBlock<'_>, style: &'a Arc, -) -> ContainingBlockPaddingBorderAndMargin<'a> { +) -> ContainingBlockPaddingAndBorder<'a> { let pbm = style.padding_border_margin(containing_block); let box_size = style.content_box_size(containing_block, &pbm); let max_box_size = style.content_max_box_size(containing_block, &pbm); @@ -1269,16 +1312,6 @@ fn solve_containing_block_padding_border_and_margin_for_in_flow_box<'a>( }) .clamp_between_extremums(min_box_size.inline, max_box_size.inline); - let (inline_margins, effective_margin_inline_start) = - solve_inline_margins_for_in_flow_block_level(containing_block, &pbm, inline_size); - let block_margins = solve_block_margins_for_in_flow_block_level(&pbm); - let margin = LogicalSides { - inline_start: inline_margins.0, - inline_end: inline_margins.1, - block_start: block_margins.0, - block_end: block_margins.1, - }; - // https://drafts.csswg.org/css2/#the-height-property // https://drafts.csswg.org/css2/visudet.html#min-max-heights let mut block_size = box_size.block; @@ -1296,12 +1329,33 @@ fn solve_containing_block_padding_border_and_margin_for_in_flow_box<'a>( containing_block.style.writing_mode, containing_block_for_children.style.writing_mode, "Mixed writing modes are not supported yet" ); - ContainingBlockPaddingBorderAndMargin { + ContainingBlockPaddingAndBorder { containing_block: containing_block_for_children, pbm, min_box_size, max_box_size, - margin, + } +} + +/// Given the containing block and size of an in-flow box, determine the margins. +/// Note that in the presence of floats, this shouldn't be used for a block-level box +/// that establishes an independent formatting context (or is replaced), since the +/// margins could then be incorrect. +fn solve_margins( + containing_block: &ContainingBlock<'_>, + pbm: &PaddingBorderMargin, + inline_size: Length, +) -> ResolvedMargins { + let (inline_margins, effective_margin_inline_start) = + solve_inline_margins_for_in_flow_block_level(containing_block, &pbm, inline_size); + let block_margins = solve_block_margins_for_in_flow_block_level(&pbm); + ResolvedMargins { + margin: LogicalSides { + inline_start: inline_margins.0, + inline_end: inline_margins.1, + block_start: block_margins.0, + block_end: block_margins.1, + }, effective_margin_inline_start, } } @@ -1347,7 +1401,7 @@ fn justify_self_alignment(containing_block: &ContainingBlock, free_space: Length /// that establishes an independent formatting context (or is replaced). /// /// In addition to the used margins, it also returns the effective margin-inline-start -/// (see ContainingBlockPaddingBorderAndMargin). +/// (see ContainingBlockPaddingAndBorder). fn solve_inline_margins_for_in_flow_block_level( containing_block: &ContainingBlock, pbm: &PaddingBorderMargin, @@ -1384,7 +1438,7 @@ fn solve_inline_margins_for_in_flow_block_level( /// they align within the provided rect (instead of the containing block), /// to avoid overlapping floats. /// In addition to the used margins, it also returns the effective -/// margin-inline-start (see ContainingBlockPaddingBorderAndMargin). +/// margin-inline-start (see ContainingBlockPaddingAndBorder). /// It may differ from the used inline-start margin if the computed value /// wasn't 'auto' and there are floats to avoid or the box is justified. /// See diff --git a/components/layout_2020/formatting_contexts.rs b/components/layout_2020/formatting_contexts.rs index f3dc7644dc5..be481c5ece9 100644 --- a/components/layout_2020/formatting_contexts.rs +++ b/components/layout_2020/formatting_contexts.rs @@ -73,6 +73,11 @@ pub(crate) struct IndependentLayout { /// pub content_block_size: Au, + /// The contents of a table may force it to become wider than what we would expect + /// from 'width' and 'min-width'. This is the resulting inline content size, + /// or None for non-table layouts. + pub content_inline_size_for_table: Option, + /// The offset of the last inflow baseline of this layout in the content area, if /// there was one. This is used to propagate baselines to the ancestors of `display: /// inline-block`. @@ -187,18 +192,26 @@ impl NonReplacedFormattingContext { &self, layout_context: &LayoutContext, positioning_context: &mut PositioningContext, + containing_block_for_children: &ContainingBlock, containing_block: &ContainingBlock, ) -> IndependentLayout { match &self.contents { - NonReplacedFormattingContextContents::Flow(bfc) => { - bfc.layout(layout_context, positioning_context, containing_block) - }, - NonReplacedFormattingContextContents::Flex(fc) => { - fc.layout(layout_context, positioning_context, containing_block) - }, - NonReplacedFormattingContextContents::Table(table) => { - table.layout(layout_context, positioning_context, containing_block) - }, + NonReplacedFormattingContextContents::Flow(bfc) => bfc.layout( + layout_context, + positioning_context, + containing_block_for_children, + ), + NonReplacedFormattingContextContents::Flex(fc) => fc.layout( + layout_context, + positioning_context, + containing_block_for_children, + ), + NonReplacedFormattingContextContents::Table(table) => table.layout( + layout_context, + positioning_context, + containing_block_for_children, + containing_block, + ), } } diff --git a/components/layout_2020/positioned.rs b/components/layout_2020/positioned.rs index b74e802d31d..09dc1e22293 100644 --- a/components/layout_2020/positioned.rs +++ b/components/layout_2020/positioned.rs @@ -625,6 +625,7 @@ impl HoistedAbsolutelyPositionedBox { layout_context, &mut positioning_context, &containing_block_for_children, + &containing_block.into(), ); let block_size = size.auto_is(|| independent_layout.content_block_size); Result { diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index 29c9b1950ab..388d551bf28 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -79,6 +79,7 @@ struct TableLayout<'a> { columns: Vec, cell_measures: Vec>>, assignable_width: Au, + final_table_height: Au, column_measures: Vec, distributed_column_widths: Vec, row_sizes: Vec, @@ -115,6 +116,7 @@ impl<'a> TableLayout<'a> { columns: Vec::new(), cell_measures: Vec::new(), assignable_width: Au::zero(), + final_table_height: Au::zero(), column_measures: Vec::new(), distributed_column_widths: Vec::new(), row_sizes: Vec::new(), @@ -130,18 +132,27 @@ impl<'a> TableLayout<'a> { &mut self, layout_context: &LayoutContext, positioning_context: &mut PositioningContext, - containing_block: &ContainingBlock, + containing_block_for_children: &ContainingBlock, + containing_block_for_table: &ContainingBlock, ) { - let writing_mode = containing_block.style.writing_mode; + let writing_mode = containing_block_for_children.style.writing_mode; self.compute_track_constrainedness_and_has_originating_cells(writing_mode); - self.compute_cell_measures(layout_context, containing_block); - self.compute_column_measures(containing_block.style.writing_mode); - self.compute_table_width(containing_block); + self.compute_cell_measures(layout_context, containing_block_for_children); + self.compute_column_measures(writing_mode); + self.compute_table_width(containing_block_for_children, containing_block_for_table); self.distributed_column_widths = self.distribute_width_to_columns(); - self.layout_cells_in_row(layout_context, containing_block, positioning_context); + self.layout_cells_in_row( + layout_context, + containing_block_for_children, + positioning_context, + ); let first_layout_row_heights = self.do_first_row_layout(writing_mode); - self.compute_table_height_and_final_row_heights(first_layout_row_heights, containing_block); + self.compute_table_height_and_final_row_heights( + first_layout_row_heights, + containing_block_for_children, + containing_block_for_table, + ); } /// This is an implementation of *Computing Cell Measures* from @@ -149,12 +160,12 @@ impl<'a> TableLayout<'a> { pub(crate) fn compute_cell_measures( &mut self, layout_context: &LayoutContext, - containing_block: &ContainingBlock, + containing_block_for_table: &ContainingBlock, ) { let row_measures = vec![LogicalVec2::zero(); self.table.size.width]; self.cell_measures = vec![row_measures; self.table.size.height]; - let writing_mode = containing_block.style.writing_mode; + let writing_mode = containing_block_for_table.style.writing_mode; 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] { @@ -623,57 +634,70 @@ impl<'a> TableLayout<'a> { (next_span_n, new_content_sizes_for_columns) } - fn compute_table_width(&mut self, containing_block: &ContainingBlock) { + fn compute_table_width( + &mut self, + containing_block_for_children: &ContainingBlock, + containing_block_for_table: &ContainingBlock, + ) { // https://drafts.csswg.org/css-tables/#gridmin: // > The row/column-grid width minimum (GRIDMIN) width is the sum of the min-content width of // > all the columns plus cell spacing or borders. // https://drafts.csswg.org/css-tables/#gridmax: // > The row/column-grid width maximum (GRIDMAX) width is the sum of the max-content width of // > all the columns plus cell spacing or borders. - - let mut grid_min_and_max = self + let ContentSizes { + min_content: mut gridmin, + max_content: mut gridmax, + } = self .column_measures .iter() .fold(ContentSizes::zero(), |result, measure| { result + measure.content_sizes }); + + // TODO: GRIDMAX should never be smaller than GRIDMIN! + gridmax = gridmax.max(gridmin); + let border_spacing = self.table.border_spacing(); - let inline_border_spacing = border_spacing.inline * (self.table.size.width as i32 + 1); - grid_min_and_max.min_content += inline_border_spacing; - grid_min_and_max.max_content += inline_border_spacing; + let inline_border_spacing = if self.table.size.width > 0 { + border_spacing.inline * (self.table.size.width as i32 + 1) + } else { + Au::zero() + }; + gridmin += inline_border_spacing; + gridmax += inline_border_spacing; - self.pbm = self.table.style.padding_border_margin(containing_block); - let content_box_size = self - .table - .style - .content_box_size(containing_block, &self.pbm); - let min_content_sizes = self - .table - .style - .content_min_box_size(containing_block, &self.pbm) - .auto_is(Length::zero); + let style = &self.table.style; + self.pbm = style.padding_border_margin(containing_block_for_table); - // https://drafts.csswg.org/css-tables/#used-min-width-of-table - // > The used min-width of a table is the greater of the resolved min-width, CAPMIN, and GRIDMIN. - let used_min_width_of_table = grid_min_and_max - .min_content - .max(min_content_sizes.inline.into()); + // https://drafts.csswg.org/css-tables/#resolved-table-width + // * If inline-size computes to 'auto', this is the stretch-fit size + // (https://drafts.csswg.org/css-sizing-3/#stretch-fit-size). + // * Otherwise, it's the resulting length (with percentages resolved). + // In both cases, it's clamped between min-inline-size and max-inline-size. + // This diverges a little from the specification. + let resolved_table_width = containing_block_for_children.inline_size; // https://drafts.csswg.org/css-tables/#used-width-of-table - // > The used width of a table depends on the columns and captions widths as follows: - // > * If the table-root’s width property has a computed value (resolving to - // > resolved-table-width) other than auto, the used width is the greater of - // > resolved-table-width, and the used min-width of the table. - // > * If the table-root has 'width: auto', the used width is the greater of min(GRIDMAX, - // > the table’s containing block width), the used min-width of the table. - let used_width_of_table = match content_box_size.inline { - LengthPercentage(length_percentage) => { - Au::from(length_percentage).max(used_min_width_of_table) + // * If table-root has a computed value for inline-size different than auto: + // use the maximum of the resolved table width and GRIDMIN. + // * If auto: use the resolved_table_width, clamped between GRIDMIN and GRIDMAX, + // but at least as big as min-inline-size. + // This diverges a little from the specification, but should be equivalent + // (other than using the stretch-fit size instead of the containing block width). + let used_width_of_table = match style + .content_box_size(containing_block_for_table, &self.pbm) + .inline + { + LengthPercentage(_) => resolved_table_width.max(gridmin), + Auto => { + let min_width: Au = style + .content_min_box_size(containing_block_for_table, &self.pbm) + .inline + .auto_is(Length::zero) + .into(); + resolved_table_width.clamp(gridmin, gridmax).max(min_width) }, - Auto => grid_min_and_max - .max_content - .min(containing_block.inline_size) - .max(used_min_width_of_table), }; // > The assignable table width is the used width of the table minus the total horizontal @@ -976,7 +1000,7 @@ impl<'a> TableLayout<'a> { fn layout_cells_in_row( &mut self, layout_context: &LayoutContext, - containing_block: &ContainingBlock, + containing_block_for_table: &ContainingBlock, parent_positioning_context: &mut PositioningContext, ) { for row_index in 0..self.table.slots.len() { @@ -996,10 +1020,12 @@ impl<'a> TableLayout<'a> { total_width += self.distributed_column_widths[width_index]; } - let border = cell.style.border_width(containing_block.style.writing_mode); + let border = cell + .style + .border_width(containing_block_for_table.style.writing_mode); let padding = cell .style - .padding(containing_block.style.writing_mode) + .padding(containing_block_for_table.style.writing_mode) .percentages_relative_to(self.basis_for_cell_padding_percentage.into()); let inline_border_padding_sum = border.inline_sum() + padding.inline_sum(); let mut total_width: CSSPixelLength = @@ -1327,27 +1353,37 @@ impl<'a> TableLayout<'a> { fn compute_table_height_and_final_row_heights( &mut self, mut row_sizes: Vec, - containing_block: &ContainingBlock, + containing_block_for_children: &ContainingBlock, + containing_block_for_table: &ContainingBlock, ) { // The table content height is the maximum of the computed table height from style and the // sum of computed row heights from row layout plus size from borders and spacing. - let table_height_from_style = self - .table - .style - .content_box_size(containing_block, &self.pbm) + // When block-size doesn't compute to auto, `containing_block_for children` will have + // the resulting length, properly clamped between min-block-size and max-block-size. + let style = &self.table.style; + let table_height_from_style = match style + .content_box_size(containing_block_for_table, &self.pbm) .block - .auto_is(Length::zero) - .into(); + { + LengthPercentage(_) => containing_block_for_children.block_size, + Auto => style + .content_min_box_size(containing_block_for_table, &self.pbm) + .block + .map(Au::from), + } + .auto_is(Au::zero); - let border_spacing = self.table.border_spacing(); - let border_and_spacing = self.pbm.border.block_sum() + - border_spacing.block * (self.table.size.height as i32 + 1); - let table_height_from_rows = row_sizes.iter().sum::() + border_and_spacing; - let final_table_height = table_height_from_rows.max(table_height_from_style); + let block_border_spacing = if self.table.size.height > 0 { + self.table.border_spacing().block * (self.table.size.height as i32 + 1) + } else { + Au::zero() + }; + let table_height_from_rows = row_sizes.iter().sum::() + block_border_spacing; + self.final_table_height = table_height_from_rows.max(table_height_from_style); // If the table height is defined by the rows sizes, there is no extra space to distribute // to rows. - if final_table_height == table_height_from_rows { + if self.final_table_height == table_height_from_rows { self.row_sizes = row_sizes; return; } @@ -1357,10 +1393,10 @@ impl<'a> TableLayout<'a> { // space. // TODO: This should first distribute space to row groups and then to rows. self.distribute_extra_size_to_rows( - final_table_height - table_height_from_rows, + self.final_table_height - table_height_from_rows, 0..self.table.size.height, &mut row_sizes, - Some(final_table_height), + Some(self.final_table_height), false, /* rowspan_distribution */ ); self.row_sizes = row_sizes; @@ -1378,7 +1414,8 @@ impl<'a> TableLayout<'a> { if self.table.size.width == 0 || self.table.size.height == 0 { return IndependentLayout { fragments, - content_block_size: Au::zero(), + content_block_size: self.final_table_height, + content_inline_size_for_table: Some(self.assignable_width), baselines, }; } @@ -1487,6 +1524,7 @@ impl<'a> TableLayout<'a> { IndependentLayout { fragments, content_block_size: dimensions.table_rect.max_block_position(), + content_inline_size_for_table: Some(dimensions.table_rect.max_inline_position()), baselines, } } @@ -1780,10 +1818,16 @@ impl Table { &self, layout_context: &LayoutContext, positioning_context: &mut PositioningContext, - containing_block: &ContainingBlock, + containing_block_for_children: &ContainingBlock, + containing_block_for_table: &ContainingBlock, ) -> IndependentLayout { let mut table_layout = TableLayout::new(self); - table_layout.compute_measures(layout_context, positioning_context, containing_block); + table_layout.compute_measures( + layout_context, + positioning_context, + containing_block_for_children, + containing_block_for_table, + ); table_layout.layout(positioning_context) } } diff --git a/tests/wpt/meta/css/CSS2/floats-clear/floats-014.xht.ini b/tests/wpt/meta/css/CSS2/floats-clear/floats-014.xht.ini deleted file mode 100644 index aca5f79307f..00000000000 --- a/tests/wpt/meta/css/CSS2/floats-clear/floats-014.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-014.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats-clear/floats-015.xht.ini b/tests/wpt/meta/css/CSS2/floats-clear/floats-015.xht.ini deleted file mode 100644 index 28785115836..00000000000 --- a/tests/wpt/meta/css/CSS2/floats-clear/floats-015.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-015.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini b/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini deleted file mode 100644 index e61b4e4cfe3..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-wrap-bfc-001-left-table.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini b/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini deleted file mode 100644 index 157f5bb668a..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-wrap-bfc-001-right-table.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini b/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini deleted file mode 100644 index 8826cebd320..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-wrap-bfc-003-left-table.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini b/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini deleted file mode 100644 index bf06e6df552..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-wrap-bfc-003-right-table.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-004.xht.ini b/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-004.xht.ini deleted file mode 100644 index c06faa31617..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-wrap-bfc-004.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-wrap-bfc-004.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/caption-side-applies-to-017.xht.ini b/tests/wpt/meta/css/CSS2/tables/caption-side-applies-to-017.xht.ini deleted file mode 100644 index aff6327732c..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/caption-side-applies-to-017.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[caption-side-applies-to-017.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/separated-border-model-007.xht.ini b/tests/wpt/meta/css/CSS2/tables/separated-border-model-007.xht.ini deleted file mode 100644 index 4212826241c..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/separated-border-model-007.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[separated-border-model-007.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/separated-border-model-008.xht.ini b/tests/wpt/meta/css/CSS2/tables/separated-border-model-008.xht.ini deleted file mode 100644 index 7535b349492..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/separated-border-model-008.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[separated-border-model-008.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/separated-border-model-009.xht.ini b/tests/wpt/meta/css/CSS2/tables/separated-border-model-009.xht.ini deleted file mode 100644 index 2a6b14fa145..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/separated-border-model-009.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[separated-border-model-009.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini b/tests/wpt/meta/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini deleted file mode 100644 index bf18951d72b..00000000000 --- a/tests/wpt/meta/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-backgrounds-bs-table-001.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/absolute-tables-001.html.ini b/tests/wpt/meta/css/css-tables/absolute-tables-001.html.ini deleted file mode 100644 index 061354e515b..00000000000 --- a/tests/wpt/meta/css/css-tables/absolute-tables-001.html.ini +++ /dev/null @@ -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 diff --git a/tests/wpt/meta/css/css-tables/anonymous-table-cell-margin-collapsing.html.ini b/tests/wpt/meta/css/css-tables/anonymous-table-cell-margin-collapsing.html.ini deleted file mode 100644 index e819aa19417..00000000000 --- a/tests/wpt/meta/css/css-tables/anonymous-table-cell-margin-collapsing.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[anonymous-table-cell-margin-collapsing.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/bounding-box-computation-2.html.ini b/tests/wpt/meta/css/css-tables/bounding-box-computation-2.html.ini deleted file mode 100644 index 7db55a8a39d..00000000000 --- a/tests/wpt/meta/css/css-tables/bounding-box-computation-2.html.ini +++ /dev/null @@ -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 diff --git a/tests/wpt/meta/css/css-tables/bounding-box-computation-3.html.ini b/tests/wpt/meta/css/css-tables/bounding-box-computation-3.html.ini index b75475e96e5..31227f32988 100644 --- a/tests/wpt/meta/css/css-tables/bounding-box-computation-3.html.ini +++ b/tests/wpt/meta/css/css-tables/bounding-box-computation-3.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/column-track-merging.html.ini b/tests/wpt/meta/css/css-tables/column-track-merging.html.ini index 8d744aaf5ea..4a2931e19a4 100644 --- a/tests/wpt/meta/css/css-tables/column-track-merging.html.ini +++ b/tests/wpt/meta/css/css-tables/column-track-merging.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/dynamic-rowspan-change.html.ini b/tests/wpt/meta/css/css-tables/dynamic-rowspan-change.html.ini index a9f627ac656..439d0a8604a 100644 --- a/tests/wpt/meta/css/css-tables/dynamic-rowspan-change.html.ini +++ b/tests/wpt/meta/css/css-tables/dynamic-rowspan-change.html.ini @@ -1,6 +1,3 @@ [dynamic-rowspan-change.html] - [main table 1] - expected: FAIL - [main table 2] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/html-display-table.html.ini b/tests/wpt/meta/css/css-tables/html-display-table.html.ini deleted file mode 100644 index a8fc7973a95..00000000000 --- a/tests/wpt/meta/css/css-tables/html-display-table.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[html-display-table.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/html-to-css-mapping-1.html.ini b/tests/wpt/meta/css/css-tables/html-to-css-mapping-1.html.ini deleted file mode 100644 index 917c5128e7f..00000000000 --- a/tests/wpt/meta/css/css-tables/html-to-css-mapping-1.html.ini +++ /dev/null @@ -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 diff --git a/tests/wpt/meta/css/css-tables/html5-table-formatting-1.html.ini b/tests/wpt/meta/css/css-tables/html5-table-formatting-1.html.ini index b4948327ec5..24641c85454 100644 --- a/tests/wpt/meta/css/css-tables/html5-table-formatting-1.html.ini +++ b/tests/wpt/meta/css/css-tables/html5-table-formatting-1.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/html5-table-formatting-2.html.ini b/tests/wpt/meta/css/css-tables/html5-table-formatting-2.html.ini index 14db94c0dff..59e902346fd 100644 --- a/tests/wpt/meta/css/css-tables/html5-table-formatting-2.html.ini +++ b/tests/wpt/meta/css/css-tables/html5-table-formatting-2.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/html5-table-formatting-3.html.ini b/tests/wpt/meta/css/css-tables/html5-table-formatting-3.html.ini index 313fc7f6942..d09c45d2ea4 100644 --- a/tests/wpt/meta/css/css-tables/html5-table-formatting-3.html.ini +++ b/tests/wpt/meta/css/css-tables/html5-table-formatting-3.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/html5-table-formatting-fixed-layout-1.html.ini b/tests/wpt/meta/css/css-tables/html5-table-formatting-fixed-layout-1.html.ini deleted file mode 100644 index b466346e79d..00000000000 --- a/tests/wpt/meta/css/css-tables/html5-table-formatting-fixed-layout-1.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[html5-table-formatting-fixed-layout-1.html] - [Redundant columns of fixed-layout tables are not being merged] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/max-height-table.html.ini b/tests/wpt/meta/css/css-tables/max-height-table.html.ini deleted file mode 100644 index 11b2b3c40ae..00000000000 --- a/tests/wpt/meta/css/css-tables/max-height-table.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-height-table.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/min-max-size-table-content-box.html.ini b/tests/wpt/meta/css/css-tables/min-max-size-table-content-box.html.ini deleted file mode 100644 index 9b54f897e3b..00000000000 --- a/tests/wpt/meta/css/css-tables/min-max-size-table-content-box.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-max-size-table-content-box.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/subpixel-table-cell-width-001.html.ini b/tests/wpt/meta/css/css-tables/subpixel-table-cell-width-001.html.ini deleted file mode 100644 index e6bc58ff40b..00000000000 --- a/tests/wpt/meta/css/css-tables/subpixel-table-cell-width-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[subpixel-table-cell-width-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/caption.html.ini b/tests/wpt/meta/css/css-tables/tentative/caption.html.ini index 0afb6ee5331..1d11aa17b5e 100644 --- a/tests/wpt/meta/css/css-tables/tentative/caption.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/caption.html.ini @@ -8,9 +8,6 @@ [table 3] expected: FAIL - [table 6] - expected: FAIL - [table 7] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/colgroup-col.html.ini b/tests/wpt/meta/css/css-tables/tentative/colgroup-col.html.ini index 04b658c181c..5f81cb67a16 100644 --- a/tests/wpt/meta/css/css-tables/tentative/colgroup-col.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/colgroup-col.html.ini @@ -11,8 +11,5 @@ [table 4] expected: FAIL - [table 5] - expected: FAIL - [table 6] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/colspan-redistribution.html.ini b/tests/wpt/meta/css/css-tables/tentative/colspan-redistribution.html.ini index 318cca02b30..50034d30e1c 100644 --- a/tests/wpt/meta/css/css-tables/tentative/colspan-redistribution.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/colspan-redistribution.html.ini @@ -59,9 +59,6 @@ [table 24] expected: FAIL - [table 25] - expected: FAIL - [table 26] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/column-widths.html.ini b/tests/wpt/meta/css/css-tables/tentative/column-widths.html.ini index 72ad4034f34..287d4b4ca66 100644 --- a/tests/wpt/meta/css/css-tables/tentative/column-widths.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/column-widths.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/tentative/table-fixed-minmax.html.ini b/tests/wpt/meta/css/css-tables/tentative/table-fixed-minmax.html.ini index bf03b178834..40f8e5406d2 100644 --- a/tests/wpt/meta/css/css-tables/tentative/table-fixed-minmax.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/table-fixed-minmax.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/tentative/table-minmax.html.ini b/tests/wpt/meta/css/css-tables/tentative/table-minmax.html.ini index d4c213682b8..7d91a220df5 100644 --- a/tests/wpt/meta/css/css-tables/tentative/table-minmax.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/table-minmax.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/tentative/table-quirks.html.ini b/tests/wpt/meta/css/css-tables/tentative/table-quirks.html.ini index 7b3c593006a..47a9d3d7812 100644 --- a/tests/wpt/meta/css/css-tables/tentative/table-quirks.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/table-quirks.html.ini @@ -5,8 +5,5 @@ [table 2] expected: FAIL - [table 5] - expected: FAIL - [table 3] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution-fixed.html.ini b/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution-fixed.html.ini index 3e041fb7d4f..58afeda17b8 100644 --- a/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution-fixed.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/table-width-redistribution-fixed.html.ini @@ -1,7 +1,4 @@ [table-width-redistribution-fixed.html] - [table 1] - expected: FAIL - [table 3] expected: FAIL 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 c23a6c4119b..90c7da6bd4e 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 @@ -41,8 +41,5 @@ [table 20] expected: FAIL - [table 21] - expected: FAIL - [table 22] expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/tentative/tbody-height-redistribution.html.ini b/tests/wpt/meta/css/css-tables/tentative/tbody-height-redistribution.html.ini index 5051e659e62..b342098d244 100644 --- a/tests/wpt/meta/css/css-tables/tentative/tbody-height-redistribution.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/tbody-height-redistribution.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/tentative/td-box-sizing-001.html.ini b/tests/wpt/meta/css/css-tables/tentative/td-box-sizing-001.html.ini index 3bfa8522de1..361ead3909e 100644 --- a/tests/wpt/meta/css/css-tables/tentative/td-box-sizing-001.html.ini +++ b/tests/wpt/meta/css/css-tables/tentative/td-box-sizing-001.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/visibility-hidden-col-001.html.ini b/tests/wpt/meta/css/css-tables/visibility-hidden-col-001.html.ini deleted file mode 100644 index 1e899a53101..00000000000 --- a/tests/wpt/meta/css/css-tables/visibility-hidden-col-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[visibility-hidden-col-001.html] - [visibility:hidden doesn't change table width] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/visibility-hidden-nested-001.html.ini b/tests/wpt/meta/css/css-tables/visibility-hidden-nested-001.html.ini deleted file mode 100644 index 0cb46816a2b..00000000000 --- a/tests/wpt/meta/css/css-tables/visibility-hidden-nested-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[visibility-hidden-nested-001.html] - [table visibility:hidden doesn't change table width] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-0.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-0.html.ini index 351af00f27e..e5046560643 100644 --- a/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-0.html.ini +++ b/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-0.html.ini @@ -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 diff --git a/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-2.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-2.html.ini deleted file mode 100644 index bad0b87d4a8..00000000000 --- a/tests/wpt/meta/css/css-tables/width-distribution/computing-column-measure-2.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[computing-column-measure-2.html] - [Table recalculations should match the reference] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/width-distribution/computing-table-width-1.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/computing-table-width-1.html.ini deleted file mode 100644 index 9b46b177e18..00000000000 --- a/tests/wpt/meta/css/css-tables/width-distribution/computing-table-width-1.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[computing-table-width-1.html] - [The box should be 300px since that is the size of the content] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-1.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-1.html.ini deleted file mode 100644 index bd9c4bcbf20..00000000000 --- a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-1.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[distribution-algo-1.html] - [The box should be 300px since that is the size of the content] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-2.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-2.html.ini deleted file mode 100644 index ec56aa5ef6c..00000000000 --- a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-2.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[distribution-algo-2.html] - [The box should be 300px since that is the size of the content] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-min-content-guess.html.ini b/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-min-content-guess.html.ini deleted file mode 100644 index 4a15a83f535..00000000000 --- a/tests/wpt/meta/css/css-tables/width-distribution/distribution-algo-min-content-guess.html.ini +++ /dev/null @@ -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 diff --git a/tests/wpt/meta/html/rendering/non-replaced-elements/the-hr-element-0/width.html.ini b/tests/wpt/meta/html/rendering/non-replaced-elements/the-hr-element-0/width.html.ini deleted file mode 100644 index 363b6e92cc6..00000000000 --- a/tests/wpt/meta/html/rendering/non-replaced-elements/the-hr-element-0/width.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[width.html] - expected: FAIL \ No newline at end of file