Commit 30da35d5 authored by Christian Biesinger's avatar Christian Biesinger Committed by Commit Bot

[AspectRatio] Implement transferred min/max size in legacy abspos

R=ikilpatrick@chromium.org, mstensho@chromium.org

Bug: 1083010
Change-Id: If6735fc29c476703eaeb443860d5d6e8338fe7d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2408722
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Auto-Submit: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807010}
parent 019cf62c
......@@ -5259,34 +5259,50 @@ void LayoutBox::ComputePositionedLogicalWidth(
logical_left_length, logical_right_length, margin_logical_left,
margin_logical_right, computed_values);
MinMaxSizes transferred_min_max{LayoutUnit(), LayoutUnit::Max()};
if (ShouldComputeLogicalHeightFromAspectRatio())
transferred_min_max = ComputeMinMaxLogicalWidthFromAspectRatio();
// Calculate constraint equation values for 'max-width' case.
LogicalExtentComputedValues max_values;
max_values.extent_ = LayoutUnit::Max();
if (!StyleRef().LogicalMaxWidth().IsNone()) {
LogicalExtentComputedValues max_values;
ComputePositionedLogicalWidthUsing(
kMaxSize, StyleRef().LogicalMaxWidth(), container_block,
container_direction, container_logical_width, borders_plus_padding,
logical_left_length, logical_right_length, margin_logical_left,
margin_logical_right, max_values);
if (computed_values.extent_ > max_values.extent_)
max_values.CopyExceptBlockMargins(&computed_values);
}
if (transferred_min_max.max_size < max_values.extent_) {
ComputePositionedLogicalWidthUsing(
kMaxSize, Length::Fixed(transferred_min_max.max_size), container_block,
container_direction, container_logical_width, borders_plus_padding,
logical_left_length, logical_right_length, margin_logical_left,
margin_logical_right, max_values);
}
if (computed_values.extent_ > max_values.extent_)
max_values.CopyExceptBlockMargins(&computed_values);
LogicalExtentComputedValues min_values;
// Calculate constraint equation values for 'min-width' case.
if (!StyleRef().LogicalMinWidth().IsZero() ||
StyleRef().LogicalMinWidth().IsIntrinsic()) {
LogicalExtentComputedValues min_values;
ComputePositionedLogicalWidthUsing(
kMinSize, StyleRef().LogicalMinWidth(), container_block,
container_direction, container_logical_width, borders_plus_padding,
logical_left_length, logical_right_length, margin_logical_left,
margin_logical_right, min_values);
if (computed_values.extent_ < min_values.extent_)
min_values.CopyExceptBlockMargins(&computed_values);
}
if (transferred_min_max.min_size > min_values.extent_) {
ComputePositionedLogicalWidthUsing(
kMinSize, Length::Fixed(transferred_min_max.min_size), container_block,
container_direction, container_logical_width, borders_plus_padding,
logical_left_length, logical_right_length, margin_logical_left,
margin_logical_right, min_values);
}
if (computed_values.extent_ < min_values.extent_)
min_values.CopyExceptBlockMargins(&computed_values);
computed_values.extent_ += borders_plus_padding;
}
......
......@@ -119,7 +119,6 @@ crbug.com/591099 external/wpt/css/css-shapes/shape-outside/supported-shapes/poly
### external/wpt/css/css-sizing/
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-004.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-009.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-010.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-013.tentative.html [ Pass ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment