Commit 6094c3fc authored by Christian Biesinger's avatar Christian Biesinger Committed by Commit Bot

[AspectRatio] Support computing the inline size in legacy

The -17 test started failing because this does not support the automatic
minimum size yet.

R=ikilpatrick@chromium.org

Bug: 1083010
Change-Id: I8dbbf26021529faef9a16f85322914dcab9cafcb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2369420
Auto-Submit: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801486}
parent c2e0aef9
......@@ -3469,8 +3469,28 @@ void LayoutBox::ComputeLogicalWidth(
PerpendicularContainingBlockLogicalHeight().ClampNegativeToZero();
}
// If we have an aspect ratio, see if we have a definite height to compute
// the width from.
LayoutUnit logical_height_for_ar = kIndefiniteSize;
if (StyleRef().AspectRatio() && StyleRef().LogicalWidth().IsAuto() &&
(StyleRef().LogicalHeight().IsFixed() ||
StyleRef().LogicalHeight().IsPercentOrCalc())) {
logical_height_for_ar = ComputeLogicalHeightUsing(
kMainOrPreferredSize, StyleRef().LogicalHeight(),
/* intrinsic_content_height */ kIndefiniteSize);
}
// Width calculations
if (treat_as_replaced) {
if (logical_height_for_ar != kIndefiniteSize) {
NGBoxStrut border_padding(
BorderStart() + PaddingStart(), BorderEnd() + PaddingEnd(),
BorderBefore() + PaddingBefore(), BorderAfter() + PaddingAfter());
LayoutUnit logical_width = InlineSizeFromAspectRatio(
border_padding, *StyleRef().LogicalAspectRatio(),
StyleRef().BoxSizing(), logical_height_for_ar);
computed_values.extent_ = ConstrainLogicalWidthByMinMax(
logical_width, container_width_in_inline_direction, cb);
} else if (treat_as_replaced) {
computed_values.extent_ =
ComputeReplacedLogicalWidth() + BorderAndPaddingLogicalWidth();
} else {
......
......@@ -104,16 +104,10 @@ crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/abspos-008.tentative.
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-011.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/auto-margins-001.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-002.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-003.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-006.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-007.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-009.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-014.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-015.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-016.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-018.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-017.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-020.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-021.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-023.tentative.html [ Failure ]
......@@ -126,13 +120,11 @@ crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-008
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-001.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-002.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-003.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-004.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-006.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/intrinsic-size-008.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/percentage-resolution-001.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/percentage-resolution-002.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/percentage-resolution-003.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/percentage-resolution-004.tentative.html [ Failure ]
crbug.com/1045668 external/wpt/css/css-sizing/aspect-ratio/quirks-mode-001.tentative.html [ Failure ]
crbug.com/591099 external/wpt/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html [ Failure ]
......
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