Partial implementation of keyword sizes for block layout (#34568)

Adds support for min-content, max-content, fit-content and stretch,
for block-level elements that don't establish an independent formatting
context, and for block-level elements when there is no float.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Oriol Brufau 2024-12-16 13:34:57 +01:00 committed by GitHub
parent 6be403d8b4
commit eb82161a8a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
115 changed files with 244 additions and 632 deletions

View file

@ -42,7 +42,8 @@ use crate::positioned::{AbsolutelyPositionedBox, PositioningContext, Positioning
use crate::replaced::ReplacedContents; use crate::replaced::ReplacedContents;
use crate::sizing::{self, ComputeInlineContentSizes, ContentSizes, InlineContentSizesResult}; use crate::sizing::{self, ComputeInlineContentSizes, ContentSizes, InlineContentSizesResult};
use crate::style_ext::{ use crate::style_ext::{
Clamp, ComputedValuesExt, ContentBoxSizesAndPBMDeprecated, PaddingBorderMargin, Clamp, ComputedValuesExt, ContentBoxSizesAndPBM, ContentBoxSizesAndPBMDeprecated,
PaddingBorderMargin,
}; };
use crate::{ use crate::{
ConstraintSpace, ContainingBlock, ContainingBlockSize, IndefiniteContainingBlock, ConstraintSpace, ContainingBlock, ContainingBlockSize, IndefiniteContainingBlock,
@ -715,8 +716,7 @@ impl BlockLevelBox {
layout_context, layout_context,
positioning_context, positioning_context,
containing_block, containing_block,
base.base_fragment_info, base,
&base.style,
contents, contents,
sequential_layout_state, sequential_layout_state,
collapsible_with_parent_start_margin, collapsible_with_parent_start_margin,
@ -785,13 +785,17 @@ fn layout_in_flow_non_replaced_block_level_same_formatting_context(
layout_context: &LayoutContext, layout_context: &LayoutContext,
positioning_context: &mut PositioningContext, positioning_context: &mut PositioningContext,
containing_block: &ContainingBlock, containing_block: &ContainingBlock,
mut base_fragment_info: BaseFragmentInfo, base: &LayoutBoxBase,
style: &Arc<ComputedValues>,
contents: &BlockContainer, contents: &BlockContainer,
mut sequential_layout_state: Option<&mut SequentialLayoutState>, mut sequential_layout_state: Option<&mut SequentialLayoutState>,
collapsible_with_parent_start_margin: Option<CollapsibleWithParentStartMargin>, collapsible_with_parent_start_margin: Option<CollapsibleWithParentStartMargin>,
) -> BoxFragment { ) -> BoxFragment {
let style = &base.style;
let containing_block_writing_mode = containing_block.style.writing_mode; let containing_block_writing_mode = containing_block.style.writing_mode;
let get_inline_content_sizes = |constraint_space: &ConstraintSpace| {
base.inline_content_sizes(layout_context, constraint_space, contents)
.sizes
};
let ContainingBlockPaddingAndBorder { let ContainingBlockPaddingAndBorder {
containing_block: containing_block_for_children, containing_block: containing_block_for_children,
pbm, pbm,
@ -799,7 +803,12 @@ fn layout_in_flow_non_replaced_block_level_same_formatting_context(
min_box_size, min_box_size,
max_box_size, max_box_size,
depends_on_block_constraints, depends_on_block_constraints,
} = solve_containing_block_padding_and_border_for_in_flow_box(containing_block, style); available_block_size,
} = solve_containing_block_padding_and_border_for_in_flow_box(
containing_block,
style,
get_inline_content_sizes,
);
let ResolvedMargins { let ResolvedMargins {
margin, margin,
effective_margin_inline_start, effective_margin_inline_start,
@ -933,10 +942,20 @@ fn layout_in_flow_non_replaced_block_level_same_formatting_context(
content_block_size += collapsible_margins_in_children.end.solve(); content_block_size += collapsible_margins_in_children.end.solve();
} }
let block_size = box_size let available_block_size = available_block_size.unwrap_or(content_block_size);
let block_content_sizes = LazyCell::new(|| content_block_size.into());
let preferred_block_size =
box_size
.block .block
.auto_is(|| content_block_size) .resolve(Size::FitContent, available_block_size, &block_content_sizes);
.clamp_between_extremums(min_box_size.block, max_box_size.block); let min_block_size = min_box_size
.block
.resolve_non_initial(available_block_size, &block_content_sizes)
.unwrap_or_default();
let max_block_size = max_box_size
.block
.resolve_non_initial(available_block_size, &block_content_sizes);
let block_size = preferred_block_size.clamp_between_extremums(min_block_size, max_block_size);
if let Some(ref mut sequential_layout_state) = sequential_layout_state { if let Some(ref mut sequential_layout_state) = sequential_layout_state {
// Now that we're done laying out our children, we can restore the // Now that we're done laying out our children, we can restore the
@ -978,6 +997,7 @@ fn layout_in_flow_non_replaced_block_level_same_formatting_context(
}, },
}; };
let mut base_fragment_info = base.base_fragment_info;
if depends_on_block_constraints { if depends_on_block_constraints {
base_fragment_info base_fragment_info
.flags .flags
@ -1022,6 +1042,10 @@ impl IndependentNonReplacedContents {
); );
} }
let get_inline_content_sizes = |constraint_space: &ConstraintSpace| {
base.inline_content_sizes(layout_context, constraint_space, self)
.sizes
};
let ContainingBlockPaddingAndBorder { let ContainingBlockPaddingAndBorder {
containing_block: containing_block_for_children, containing_block: containing_block_for_children,
pbm, pbm,
@ -1029,9 +1053,11 @@ impl IndependentNonReplacedContents {
min_box_size, min_box_size,
max_box_size, max_box_size,
depends_on_block_constraints, depends_on_block_constraints,
available_block_size,
} = solve_containing_block_padding_and_border_for_in_flow_box( } = solve_containing_block_padding_and_border_for_in_flow_box(
containing_block, containing_block,
&base.style, &base.style,
get_inline_content_sizes,
); );
let layout = self.layout( let layout = self.layout(
@ -1043,13 +1069,26 @@ impl IndependentNonReplacedContents {
let (block_size, inline_size) = match layout.content_inline_size_for_table { let (block_size, inline_size) = match layout.content_inline_size_for_table {
Some(inline_size) => (layout.content_block_size, inline_size), Some(inline_size) => (layout.content_block_size, inline_size),
None => ( None => {
box_size let available_block_size =
available_block_size.unwrap_or(layout.content_block_size);
let block_content_sizes = LazyCell::new(|| layout.content_block_size.into());
let preferred_block_size = box_size.block.resolve(
Size::FitContent,
available_block_size,
&block_content_sizes,
);
let min_block_size = min_box_size
.block .block
.auto_is(|| layout.content_block_size) .resolve_non_initial(available_block_size, &block_content_sizes)
.clamp_between_extremums(min_box_size.block, max_box_size.block), .unwrap_or_default();
containing_block_for_children.size.inline, let max_block_size = max_box_size
), .block
.resolve_non_initial(available_block_size, &block_content_sizes);
let block_size =
preferred_block_size.clamp_between_extremums(min_block_size, max_block_size);
(block_size, containing_block_for_children.size.inline)
},
}; };
let ResolvedMargins { let ResolvedMargins {
@ -1488,10 +1527,11 @@ impl ReplacedContents {
struct ContainingBlockPaddingAndBorder<'a> { struct ContainingBlockPaddingAndBorder<'a> {
containing_block: ContainingBlock<'a>, containing_block: ContainingBlock<'a>,
pbm: PaddingBorderMargin, pbm: PaddingBorderMargin,
box_size: LogicalVec2<AuOrAuto>, box_size: LogicalVec2<Size<Au>>,
min_box_size: LogicalVec2<Au>, min_box_size: LogicalVec2<Size<Au>>,
max_box_size: LogicalVec2<Option<Au>>, max_box_size: LogicalVec2<Size<Au>>,
depends_on_block_constraints: bool, depends_on_block_constraints: bool,
available_block_size: Option<Au>,
} }
struct ResolvedMargins { struct ResolvedMargins {
@ -1515,6 +1555,7 @@ struct ResolvedMargins {
fn solve_containing_block_padding_and_border_for_in_flow_box<'a>( fn solve_containing_block_padding_and_border_for_in_flow_box<'a>(
containing_block: &ContainingBlock<'_>, containing_block: &ContainingBlock<'_>,
style: &'a Arc<ComputedValues>, style: &'a Arc<ComputedValues>,
get_inline_content_sizes: impl FnOnce(&ConstraintSpace) -> ContentSizes,
) -> ContainingBlockPaddingAndBorder<'a> { ) -> ContainingBlockPaddingAndBorder<'a> {
if matches!(style.pseudo(), Some(PseudoElement::ServoAnonymousBox)) { if matches!(style.pseudo(), Some(PseudoElement::ServoAnonymousBox)) {
// <https://drafts.csswg.org/css2/#anonymous-block-level> // <https://drafts.csswg.org/css2/#anonymous-block-level>
@ -1532,53 +1573,78 @@ fn solve_containing_block_padding_and_border_for_in_flow_box<'a>(
return ContainingBlockPaddingAndBorder { return ContainingBlockPaddingAndBorder {
containing_block: containing_block_for_children, containing_block: containing_block_for_children,
pbm: PaddingBorderMargin::zero(), pbm: PaddingBorderMargin::zero(),
box_size: LogicalVec2 { box_size: LogicalVec2::default(),
inline: AuOrAuto::Auto,
block: AuOrAuto::Auto,
},
min_box_size: LogicalVec2::default(), min_box_size: LogicalVec2::default(),
max_box_size: LogicalVec2::default(), max_box_size: LogicalVec2::default(),
depends_on_block_constraints: false, depends_on_block_constraints: false,
// The available block size may actually be definite, but it should be irrelevant
// since the sizing properties are set to their initial value.
available_block_size: None,
}; };
} }
let ContentBoxSizesAndPBMDeprecated { let ContentBoxSizesAndPBM {
content_box_size, content_box_size,
content_min_box_size, content_min_box_size,
content_max_box_size, content_max_box_size,
pbm, pbm,
depends_on_block_constraints, depends_on_block_constraints,
} = style } = style.content_box_sizes_and_padding_border_margin(&containing_block.into());
.content_box_sizes_and_padding_border_margin(&containing_block.into())
.into();
let content_min_box_size = content_min_box_size.auto_is(Au::zero);
// https://drafts.csswg.org/css2/#the-width-property let margin = pbm.margin.auto_is(Au::zero);
// https://drafts.csswg.org/css2/visudet.html#min-max-widths let pbm_sums = pbm.padding + pbm.border + margin;
let inline_size = content_box_size let writing_mode = style.writing_mode;
.inline let available_inline_size =
.auto_is(|| { Au::zero().max(containing_block.size.inline - pbm_sums.inline_sum());
let margin_inline_start = pbm.margin.inline_start.auto_is(Au::zero); let available_block_size = containing_block
let margin_inline_end = pbm.margin.inline_end.auto_is(Au::zero); .size
containing_block.size.inline - .block
pbm.padding_border_sums.inline - .non_auto()
margin_inline_start - .map(|block_size| Au::zero().max(block_size - pbm_sums.block_sum()));
margin_inline_end
})
.clamp_between_extremums(content_min_box_size.inline, content_max_box_size.inline);
// https://drafts.csswg.org/css2/#the-height-property // https://drafts.csswg.org/css2/#the-height-property
// https://drafts.csswg.org/css2/visudet.html#min-max-heights // https://drafts.csswg.org/css2/visudet.html#min-max-heights
let mut block_size = content_box_size.block; let preferred_block_size = content_box_size
if let AuOrAuto::LengthPercentage(ref mut block_size) = block_size { .block
*block_size = block_size .maybe_resolve_extrinsic(available_block_size);
.clamp_between_extremums(content_min_box_size.block, content_max_box_size.block); let min_block_size = content_min_box_size
} .block
.maybe_resolve_extrinsic(available_block_size)
.unwrap_or_default();
let max_block_size = content_max_box_size
.block
.maybe_resolve_extrinsic(available_block_size);
let tentative_block_size =
SizeConstraint::new(preferred_block_size, min_block_size, max_block_size);
// https://drafts.csswg.org/css2/#the-width-property
// https://drafts.csswg.org/css2/visudet.html#min-max-widths
let inline_content_sizes = LazyCell::new(|| {
get_inline_content_sizes(&ConstraintSpace::new(
tentative_block_size,
writing_mode,
None, /* TODO: support preferred aspect ratios on non-replaced boxes */
))
});
let preferred_inline_size = content_box_size.inline.resolve(
Size::Stretch,
available_inline_size,
&inline_content_sizes,
);
let min_inline_size = content_min_box_size
.inline
.resolve_non_initial(available_inline_size, &inline_content_sizes)
.unwrap_or_default();
let max_inline_size = content_max_box_size
.inline
.resolve_non_initial(available_inline_size, &inline_content_sizes);
let inline_size =
preferred_inline_size.clamp_between_extremums(min_inline_size, max_inline_size);
let containing_block_for_children = ContainingBlock { let containing_block_for_children = ContainingBlock {
size: ContainingBlockSize { size: ContainingBlockSize {
inline: inline_size, inline: inline_size,
block: block_size, block: tentative_block_size.to_auto_or(),
}, },
style, style,
}; };
@ -1598,6 +1664,7 @@ fn solve_containing_block_padding_and_border_for_in_flow_box<'a>(
min_box_size: content_min_box_size, min_box_size: content_min_box_size,
max_box_size: content_max_box_size, max_box_size: content_max_box_size,
depends_on_block_constraints, depends_on_block_constraints,
available_block_size,
} }
} }

View file

@ -0,0 +1,2 @@
[background-gradient-interpolation-002.html]
expected: FAIL

View file

@ -0,0 +1,12 @@
[layer-counter-style-override.html]
[@counter-style unlayered overrides layered]
expected: FAIL
[@counter-style override between layers]
expected: FAIL
[@counter-style override update with appended sheet 1]
expected: FAIL
[@counter-style override update with appended sheet 2]
expected: FAIL

View file

@ -1,16 +0,0 @@
[flex-minimum-width-flex-items-014.html]
[body > div 3]
expected: FAIL
[body > div 2]
expected: FAIL
[body > div 6]
expected: FAIL
[body > div 5]
expected: FAIL
[body > div 4]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,3 +0,0 @@
[col-wrap-004.html]
[body > div 1]
expected: FAIL

View file

@ -1,3 +0,0 @@
[col-wrap-010.html]
[body > div 1]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-wrap-011.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-wrap-012.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-wrap-015.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-wrap-016.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[col-wrap-017.html]
expected: FAIL

View file

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

View file

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

View file

@ -1,33 +0,0 @@
[row-008.html]
[.min-width-flexbox 1]
expected: FAIL
[.min-width-flexbox 2]
expected: FAIL
[.min-width-flexbox 3]
expected: FAIL
[.min-width-flexbox 4]
expected: FAIL
[.min-width-flexbox 5]
expected: FAIL
[.min-width-flexbox 6]
expected: FAIL
[.min-width-flexbox 7]
expected: FAIL
[.min-width-flexbox 8]
expected: FAIL
[.min-width-flexbox 9]
expected: FAIL
[.min-width-flexbox 10]
expected: FAIL
[.min-width-flexbox 11]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-as-flex-item-max-content.html]
expected: FAIL

View file

@ -1,27 +1,3 @@
[empty-grid-001.html] [empty-grid-001.html]
[.grid 1]
expected: FAIL
[.grid 2] [.grid 2]
expected: FAIL expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 7]
expected: FAIL
[.grid 8]
expected: FAIL
[.grid 9]
expected: FAIL

View file

@ -1,16 +1,4 @@
[grid-align-justify-margin-border-padding.html] [grid-align-justify-margin-border-padding.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5] [.grid 5]
expected: FAIL expected: FAIL
@ -20,9 +8,6 @@
[.grid 7] [.grid 7]
expected: FAIL expected: FAIL
[.grid 8]
expected: FAIL
[.grid 9] [.grid 9]
expected: FAIL expected: FAIL

View file

@ -1,22 +1,10 @@
[grid-align-justify-overflow.html] [grid-align-justify-overflow.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3] [.grid 3]
expected: FAIL expected: FAIL
[.grid 4] [.grid 4]
expected: FAIL expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 7] [.grid 7]
expected: FAIL expected: FAIL

View file

@ -1,40 +1,7 @@
[grid-align-justify-stretch.html] [grid-align-justify-stretch.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 7]
expected: FAIL
[.grid 8]
expected: FAIL
[.grid 9]
expected: FAIL
[.grid 10]
expected: FAIL
[.grid 11] [.grid 11]
expected: FAIL expected: FAIL
[.grid 12]
expected: FAIL
[.grid 13] [.grid 13]
expected: FAIL expected: FAIL

View file

@ -1,25 +1,16 @@
[grid-align.html] [grid-align.html]
[.grid 1]
expected: FAIL
[.grid 2] [.grid 2]
expected: FAIL expected: FAIL
[.grid 3] [.grid 3]
expected: FAIL expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5] [.grid 5]
expected: FAIL expected: FAIL
[.grid 6] [.grid 6]
expected: FAIL expected: FAIL
[.grid 7]
expected: FAIL
[.grid 8] [.grid 8]
expected: FAIL expected: FAIL

View file

@ -1,2 +0,0 @@
[grid-container-auto-margins-scrollbars-001.html]
expected: FAIL

View file

@ -32,9 +32,6 @@
[.grid 15] [.grid 15]
expected: FAIL expected: FAIL
[.grid 16]
expected: FAIL
[.grid 17] [.grid 17]
expected: FAIL expected: FAIL

View file

@ -1,2 +0,0 @@
[child-border-box-and-max-content-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[child-border-box-and-max-content-002.html]
expected: FAIL

View file

@ -1,28 +1,16 @@
[grid-auto-repeat-max-size-001.tentative.html] [grid-auto-repeat-max-size-001.tentative.html]
[.grid 10]
expected: FAIL
[.grid 11] [.grid 11]
expected: FAIL expected: FAIL
[.grid 13]
expected: FAIL
[.grid 14] [.grid 14]
expected: FAIL expected: FAIL
[.grid 15]
expected: FAIL
[.grid 16: Percentage padding, min-content] [.grid 16: Percentage padding, min-content]
expected: FAIL expected: FAIL
[.grid 17] [.grid 17]
expected: FAIL expected: FAIL
[.grid 18]
expected: FAIL
[.grid 19: Percentage padding, max-content] [.grid 19: Percentage padding, max-content]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,6 @@
[grid-auto-repeat-max-size-002.html]
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL

View file

@ -1,16 +1,10 @@
[grid-automatic-minimum-intrinsic-aspect-ratio-001.html] [grid-automatic-minimum-intrinsic-aspect-ratio-001.html]
[.container 1]
expected: FAIL
[.container 2] [.container 2]
expected: FAIL expected: FAIL
[.container 3] [.container 3]
expected: FAIL expected: FAIL
[.container 4]
expected: FAIL
[.container 5] [.container 5]
expected: FAIL expected: FAIL
@ -20,23 +14,8 @@
[.container 7] [.container 7]
expected: FAIL expected: FAIL
[.container 8]
expected: FAIL
[.container 9] [.container 9]
expected: FAIL expected: FAIL
[.container 10]
expected: FAIL
[.container 11]
expected: FAIL
[.container 12]
expected: FAIL
[.container 13] [.container 13]
expected: FAIL expected: FAIL
[.container 14]
expected: FAIL

View file

@ -1,6 +0,0 @@
[compute-intrinsic-widths-scrollbar-001.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL

View file

@ -1,48 +0,0 @@
[grid-container-margin-border-padding-scrollbar-001.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 7]
expected: FAIL
[.grid 8]
expected: FAIL
[.grid 9]
expected: FAIL
[.grid 10]
expected: FAIL
[.grid 11]
expected: FAIL
[.grid 12]
expected: FAIL
[.grid 13]
expected: FAIL
[.grid 14]
expected: FAIL
[.grid 15]
expected: FAIL
[.grid 16]
expected: FAIL

View file

@ -1,9 +0,0 @@
[grid-container-sizing-constraints-001.html]
[.grid 4]
expected: FAIL
[.grid 9]
expected: FAIL
[.grid 14]
expected: FAIL

View file

@ -1,2 +0,0 @@
[grid-floats-no-intrude-002.html]
expected: FAIL

View file

@ -1,25 +1,10 @@
[grid-gutters-and-tracks-001.html] [grid-gutters-and-tracks-001.html]
[.grid 1]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 7] [.grid 7]
expected: FAIL expected: FAIL
[.grid 8] [.grid 8]
expected: FAIL expected: FAIL
[.grid 9]
expected: FAIL
[.grid 12] [.grid 12]
expected: FAIL expected: FAIL

View file

@ -2,18 +2,9 @@
[.grid 1] [.grid 1]
expected: FAIL expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3] [.grid 3]
expected: FAIL expected: FAIL
[.grid 4]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 9] [.grid 9]
expected: FAIL expected: FAIL

View file

@ -1,15 +0,0 @@
[flex-and-intrinsic-sizes-001.html]
[.grid 2]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL

View file

@ -1,57 +1,9 @@
[grid-container-percentage-002.html] [grid-container-percentage-002.html]
[.grid 1]
expected: FAIL
[.grid 4]
expected: FAIL
[.grid 5]
expected: FAIL
[.grid 6]
expected: FAIL
[.grid 7]
expected: FAIL
[.grid 9] [.grid 9]
expected: FAIL expected: FAIL
[.grid 10]
expected: FAIL
[.grid 11]
expected: FAIL
[.grid 12]
expected: FAIL
[.grid 13]
expected: FAIL
[.grid 15] [.grid 15]
expected: FAIL expected: FAIL
[.grid 16]
expected: FAIL
[.grid 17]
expected: FAIL
[.grid 18]
expected: FAIL
[.grid 19]
expected: FAIL
[.grid 21] [.grid 21]
expected: FAIL expected: FAIL
[.grid 22]
expected: FAIL
[.grid 23]
expected: FAIL
[.grid 24]
expected: FAIL

View file

@ -1,12 +0,0 @@
[grid-item-margin-auto-columns-rows-001.html]
[.grid 1]
expected: FAIL
[.grid 2]
expected: FAIL
[.grid 3]
expected: FAIL
[.grid 4]
expected: FAIL

View file

@ -1,2 +0,0 @@
[dynamic-min-content-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[dynamic-min-content-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[dynamic-min-content-003.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[standalone-axis-size-006.html]
expected: FAIL

View file

@ -1,6 +0,0 @@
[inline-size-computed.html]
[Property inline-size value 'min-content']
expected: FAIL
[Property inline-size value 'max-content']
expected: FAIL

View file

@ -514,3 +514,21 @@
[Web Animations: property <width> from neutral to [min-content\] at (1.5) should be [min-content\]] [Web Animations: property <width> from neutral to [min-content\] at (1.5) should be [min-content\]]
expected: FAIL expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto\] to [fit-content\] at (-0.3) should be [auto\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto\] to [fit-content\] at (0) should be [auto\]]
expected: FAIL
[CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto\] to [fit-content\] at (0.3) should be [auto\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto\] to [fit-content\] at (-0.3) should be [auto\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto\] to [fit-content\] at (0) should be [auto\]]
expected: FAIL
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto\] to [fit-content\] at (0.3) should be [auto\]]
expected: FAIL

View file

@ -1,2 +0,0 @@
[block-aspect-ratio-056.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[block-aspect-ratio-057.tentative.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[grid-aspect-ratio-027.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-007.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-020.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-021.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-022.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-023.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-024.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-size-025.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[block-size-with-min-or-max-content-1a.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[block-size-with-min-or-max-content-2.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[block-size-with-min-or-max-content-3.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-box-and-max-content-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-box-and-max-content-003.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[calc-margins-block.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[calc-margins-fieldset-content.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[calc-margins-fieldset-legend.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[calc-margins-flex.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[fit-content-max-inline-size.tentative.html]
expected: FAIL

View file

@ -1,9 +0,0 @@
[fit-content-percentage-padding.html]
[Initial layout]
expected: FAIL
[Shrink width]
expected: FAIL
[Grow width]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-percent-replaced-012.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-percent-replaced-013.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-percent-replaced-022.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[intrinsic-percent-replaced-023.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[min-content-min-width-000.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[percentage-min-width.html]
[#container 1]
expected: FAIL

View file

@ -1,3 +0,0 @@
[auto-margins-1.html]
[[data-expected-width\] 2]
expected: FAIL

View file

@ -1,27 +0,0 @@
[block-height-001.html]
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 2]
expected: FAIL
[[data-expected-height\] 3]
expected: FAIL
[[data-expected-height\] 7]
expected: FAIL
[[data-expected-height\] 8]
expected: FAIL
[[data-expected-height\] 9]
expected: FAIL
[[data-expected-height\] 13]
expected: FAIL
[[data-expected-height\] 14]
expected: FAIL
[[data-expected-height\] 15]
expected: FAIL

View file

@ -1,6 +1,3 @@
[block-height-002.tentative.html] [block-height-002.tentative.html]
[main > div > div 1]
expected: FAIL
[main > div > div 2] [main > div > div 2]
expected: FAIL expected: FAIL

View file

@ -2,17 +2,8 @@
[.inner 1] [.inner 1]
expected: FAIL expected: FAIL
[.inner 2]
expected: FAIL
[.inner 3]
expected: FAIL
[.inner 4] [.inner 4]
expected: FAIL expected: FAIL
[.inner 5] [.inner 5]
expected: FAIL expected: FAIL
[.inner 6]
expected: FAIL

View file

@ -1,9 +1,3 @@
[content-contribution-001.html] [content-contribution-001.html]
[.test 1]
expected: FAIL
[.test 2]
expected: FAIL
[.test 5] [.test 5]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,3 @@
[indefinite-2.html]
[[data-expected-client-height\] 1]
expected: FAIL

View file

@ -0,0 +1,3 @@
[indefinite-3.html]
[[data-expected-client-height\] 1]
expected: FAIL

View file

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

View file

@ -1,7 +1,4 @@
[stretch-block-size-001.html] [stretch-block-size-001.html]
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 8] [[data-expected-height\] 8]
expected: FAIL expected: FAIL
@ -14,12 +11,6 @@
[[data-expected-height\] 22] [[data-expected-height\] 22]
expected: FAIL expected: FAIL
[[data-expected-height\] 23]
expected: FAIL
[[data-expected-height\] 24]
expected: FAIL
[[data-expected-height\] 31] [[data-expected-height\] 31]
expected: FAIL expected: FAIL
@ -31,6 +22,3 @@
[[data-expected-height\] 45] [[data-expected-height\] 45]
expected: FAIL expected: FAIL
[[data-expected-height\] 46]
expected: FAIL

View file

@ -1,7 +1,4 @@
[stretch-max-block-size-001.html] [stretch-max-block-size-001.html]
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 8] [[data-expected-height\] 8]
expected: FAIL expected: FAIL
@ -14,9 +11,6 @@
[[data-expected-height\] 22] [[data-expected-height\] 22]
expected: FAIL expected: FAIL
[[data-expected-height\]:not([skip-second-pass\]) 24]
expected: FAIL
[[data-expected-height\]:not([skip-second-pass\]) 31] [[data-expected-height\]:not([skip-second-pass\]) 31]
expected: FAIL expected: FAIL
@ -28,3 +22,6 @@
[[data-expected-height\]:not([skip-second-pass\]) 45] [[data-expected-height\]:not([skip-second-pass\]) 45]
expected: FAIL expected: FAIL
[[data-expected-height\] 23]
expected: FAIL

View file

@ -1,7 +1,4 @@
[stretch-max-inline-size-001.html] [stretch-max-inline-size-001.html]
[[data-expected-width\] 1]
expected: FAIL
[[data-expected-width\] 8] [[data-expected-width\] 8]
expected: FAIL expected: FAIL
@ -14,9 +11,6 @@
[[data-expected-width\] 22] [[data-expected-width\] 22]
expected: FAIL expected: FAIL
[[data-expected-width\]:not([skip-second-pass\]) 24]
expected: FAIL
[[data-expected-width\]:not([skip-second-pass\]) 31] [[data-expected-width\]:not([skip-second-pass\]) 31]
expected: FAIL expected: FAIL
@ -28,3 +22,6 @@
[[data-expected-width\]:not([skip-second-pass\]) 45] [[data-expected-width\]:not([skip-second-pass\]) 45]
expected: FAIL expected: FAIL
[[data-expected-width\] 23]
expected: FAIL

View file

@ -1,7 +1,4 @@
[stretch-min-block-size-001.html] [stretch-min-block-size-001.html]
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 8] [[data-expected-height\] 8]
expected: FAIL expected: FAIL
@ -17,12 +14,6 @@
[[data-expected-height\] 22] [[data-expected-height\] 22]
expected: FAIL expected: FAIL
[[data-expected-height\] 23]
expected: FAIL
[[data-expected-height\] 24]
expected: FAIL
[[data-expected-height\] 31] [[data-expected-height\] 31]
expected: FAIL expected: FAIL
@ -37,6 +28,3 @@
[[data-expected-height\] 45] [[data-expected-height\] 45]
expected: FAIL expected: FAIL
[[data-expected-height\] 46]
expected: FAIL

View file

@ -1,7 +1,4 @@
[stretch-min-inline-size-001.html] [stretch-min-inline-size-001.html]
[[data-expected-width\] 1]
expected: FAIL
[[data-expected-width\] 8] [[data-expected-width\] 8]
expected: FAIL expected: FAIL
@ -17,12 +14,6 @@
[[data-expected-width\] 22] [[data-expected-width\] 22]
expected: FAIL expected: FAIL
[[data-expected-width\] 23]
expected: FAIL
[[data-expected-width\] 24]
expected: FAIL
[[data-expected-width\] 31] [[data-expected-width\] 31]
expected: FAIL expected: FAIL
@ -37,6 +28,3 @@
[[data-expected-width\] 45] [[data-expected-width\] 45]
expected: FAIL expected: FAIL
[[data-expected-width\] 46]
expected: FAIL

View file

@ -1,2 +0,0 @@
[whitespace-and-break.html]
expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,2 @@
[text-group-align-center-vlr.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-center.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-end-vlr.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-end.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-left-vlr.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-left.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-right-vlr.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-right.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-start-vlr.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-group-align-start.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[pre-wrap-017.html]
expected: FAIL

Some files were not shown because too many files have changed in this diff Show more