diff --git a/components/layout_2020/flow/inline/mod.rs b/components/layout_2020/flow/inline/mod.rs index 1f686120c32..d864807aa45 100644 --- a/components/layout_2020/flow/inline/mod.rs +++ b/components/layout_2020/flow/inline/mod.rs @@ -2287,14 +2287,8 @@ impl<'layout_data> ContentSizesComputation<'layout_data> { } self.forced_line_break(); - // We might get a max-content size which is smaller than the min-content size, - // due to negative margins. So we need to adjust to avoid problems down the line. - // This is being discussed in . - let mut sizes = self.paragraph; - sizes.max_content.max_assign(sizes.min_content); - InlineContentSizesResult { - sizes, + sizes: self.paragraph, depends_on_block_constraints: self.depends_on_block_constraints, } } diff --git a/components/layout_2020/layout_box_base.rs b/components/layout_2020/layout_box_base.rs index 4d8ea2ade5f..8a88a5855dc 100644 --- a/components/layout_2020/layout_box_base.rs +++ b/components/layout_2020/layout_box_base.rs @@ -60,7 +60,8 @@ impl LayoutBoxBase { // TODO: Should we keep multiple caches for various block sizes? } - let result = layout_box.compute_inline_content_sizes(layout_context, constraint_space); + let result = + layout_box.compute_inline_content_sizes_with_fixup(layout_context, constraint_space); *cache = Some(Box::new((constraint_space.block_size, result))); result } diff --git a/components/layout_2020/sizing.rs b/components/layout_2020/sizing.rs index 45595bc0871..cde1a2b246a 100644 --- a/components/layout_2020/sizing.rs +++ b/components/layout_2020/sizing.rs @@ -279,4 +279,18 @@ pub(crate) trait ComputeInlineContentSizes { layout_context: &LayoutContext, constraint_space: &ConstraintSpace, ) -> InlineContentSizesResult; + + /// Returns the same result as [`Self::compute_inline_content_sizes()`], but adjusted + /// to floor the max-content size by the min-content size. + /// This is being discussed in . + fn compute_inline_content_sizes_with_fixup( + &self, + layout_context: &LayoutContext, + constraint_space: &ConstraintSpace, + ) -> InlineContentSizesResult { + let mut result = self.compute_inline_content_sizes(layout_context, constraint_space); + let sizes = &mut result.sizes; + sizes.max_content.max_assign(sizes.min_content); + result + } } diff --git a/tests/wpt/meta/css/css-flexbox/intrinsic-size/row-wrap-002.tentative.html.ini b/tests/wpt/meta/css/css-flexbox/intrinsic-size/row-wrap-002.tentative.html.ini deleted file mode 100644 index f8a8e27c760..00000000000 --- a/tests/wpt/meta/css/css-flexbox/intrinsic-size/row-wrap-002.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[row-wrap-002.tentative.html] - expected: FAIL