diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 3a9746c4e9d..46a3f0e6015 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -945,7 +945,7 @@ impl FlexContainer { let max_box_size = self.config.flex_axis.vec2_to_flex_relative(max_box_size); let min_box_size = self.config.flex_axis.vec2_to_flex_relative(min_box_size); - (min_box_size.cross, max_box_size.cross.map(Into::into)) + (min_box_size.cross, max_box_size.cross) } } diff --git a/components/layout_2020/flow/mod.rs b/components/layout_2020/flow/mod.rs index b3f630cbe48..765a0dadf91 100644 --- a/components/layout_2020/flow/mod.rs +++ b/components/layout_2020/flow/mod.rs @@ -1148,10 +1148,9 @@ impl NonReplacedFormattingContext { loop { // First try to place the block using the minimum size as the object size. placement_rect = placement.place(); - let proposed_inline_size = placement_rect.size.inline - - pbm.padding_border_sums - .inline - .clamp_between_extremums(min_box_size.inline, max_box_size.inline); + let proposed_inline_size = (placement_rect.size.inline - + pbm.padding_border_sums.inline) + .clamp_between_extremums(min_box_size.inline, max_box_size.inline); // Now lay out the block using the inline size we calculated from the placement. // Later we'll check to see if the resulting block size is compatible with the diff --git a/components/layout_2020/geom.rs b/components/layout_2020/geom.rs index aa48bf3ce08..e5a6677361a 100644 --- a/components/layout_2020/geom.rs +++ b/components/layout_2020/geom.rs @@ -152,8 +152,7 @@ impl LogicalVec2> { self.block .non_auto() .and_then(|value| value.maybe_to_used_value(containing_block_block_size)) - .map(|value| AuOrAuto::LengthPercentage(value)) - .unwrap_or(AuOrAuto::Auto) + .map_or(AuOrAuto::Auto, AuOrAuto::LengthPercentage) }, } } @@ -182,14 +181,12 @@ impl LogicalVec2> { .inline .non_auto() .and_then(|value| value.maybe_to_used_value(basis.inline)) - .map(|value| AuOrAuto::LengthPercentage(value)) - .unwrap_or(AuOrAuto::Auto), + .map_or(AuOrAuto::Auto, AuOrAuto::LengthPercentage), block: self .block .non_auto() .and_then(|value| value.maybe_to_used_value(basis.block)) - .map(|value| AuOrAuto::LengthPercentage(value)) - .unwrap_or(AuOrAuto::Auto), + .map_or(AuOrAuto::Auto, AuOrAuto::LengthPercentage), } } } diff --git a/components/layout_2020/style_ext.rs b/components/layout_2020/style_ext.rs index c7eb46a15dd..f9aa9650c53 100644 --- a/components/layout_2020/style_ext.rs +++ b/components/layout_2020/style_ext.rs @@ -505,8 +505,8 @@ impl ComputedValuesExt for ComputedValues { .percentages_relative_to(Au::zero()); PaddingBorderMargin { padding_border_sums: LogicalVec2 { - inline: (padding.inline_sum() + border.inline_sum()), - block: (padding.block_sum() + border.block_sum()), + inline: padding.inline_sum() + border.inline_sum(), + block: padding.block_sum() + border.block_sum(), }, padding, border, @@ -528,8 +528,8 @@ impl ComputedValuesExt for ComputedValues { .percentages_relative_to(containing_block_inline_size); PaddingBorderMargin { padding_border_sums: LogicalVec2 { - inline: (padding.inline_sum() + border.inline_sum()), - block: (padding.block_sum() + border.block_sum()), + inline: padding.inline_sum() + border.inline_sum(), + block: padding.block_sum() + border.block_sum(), }, padding, border, diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index a9278a2b667..68b26435ede 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -199,8 +199,8 @@ impl<'a> TableLayout<'a> { .unwrap_or_else(|| cell.style.border_width(writing_mode)); let padding_border_sums = LogicalVec2 { - inline: (padding.inline_sum() + border.inline_sum()), - block: (padding.block_sum() + border.block_sum()), + inline: padding.inline_sum() + border.inline_sum(), + block: padding.block_sum() + border.block_sum(), }; let (size, min_size, max_size) = @@ -710,8 +710,8 @@ impl<'a> TableLayout<'a> { .auto_is(Au::zero); let padding_border_sums = LogicalVec2 { - inline: (padding.inline_sum() + border.inline_sum() + margin.inline_sum()), - block: (padding.block_sum() + border.block_sum() + margin.block_sum()), + inline: padding.inline_sum() + border.inline_sum() + margin.inline_sum(), + block: padding.block_sum() + border.block_sum() + margin.block_sum(), }; let (size, min_size, max_size) = diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 75343a4913c..0c7bd63a7af 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -55302,6 +55302,19 @@ {} ] ], + "new-fc-beside-float-with-min-width.html": [ + "6337a1f9ff88c2fe27c1c4e26a51d49c68901836", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "new-fc-relayout.html": [ "97d8b9a2ff1f3be8aeab2c26817e7542511c59cb", [ diff --git a/tests/wpt/tests/css/CSS2/floats/new-fc-beside-float-with-min-width.html b/tests/wpt/tests/css/CSS2/floats/new-fc-beside-float-with-min-width.html new file mode 100644 index 00000000000..6337a1f9ff8 --- /dev/null +++ b/tests/wpt/tests/css/CSS2/floats/new-fc-beside-float-with-min-width.html @@ -0,0 +1,30 @@ + + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+
+