Changeset 272569 in webkit
- Timestamp:
- Feb 8, 2021 10:54:33 PM (3 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r272567 r272569 1 2021-02-08 Rob Buis <rbuis@igalia.com> 2 3 Make auto && <ratio> use content box-sizing 4 https://bugs.webkit.org/show_bug.cgi?id=221527 5 6 Reviewed by Simon Fraser. 7 8 Enable some tests that pass now. 9 10 * TestExpectations: 11 1 12 2021-02-08 Simon Fraser <simon.fraser@apple.com> 2 13 -
trunk/LayoutTests/TestExpectations
r272489 r272569 4414 4414 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-013.html [ ImageOnlyFailure ] 4415 4415 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/abspos-014.html [ ImageOnlyFailure ] 4416 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.html [ ImageOnlyFailure ]4417 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.html [ ImageOnlyFailure ]4418 4416 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.html [ ImageOnlyFailure ] 4419 4417 webkit.org/b/214463 imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014.html [ ImageOnlyFailure ] -
trunk/Source/WebCore/ChangeLog
r272567 r272569 1 2021-02-08 Rob Buis <rbuis@igalia.com> 2 3 Make auto && <ratio> use content box-sizing 4 https://bugs.webkit.org/show_bug.cgi?id=221527 5 6 Reviewed by Simon Fraser. 7 8 Make auto && <ratio> aspect-ratio use content box-sizing as specified: 9 https://drafts.csswg.org/css-sizing-4/#valdef-aspect-ratio-auto--ratio 10 11 * rendering/RenderBlock.cpp: 12 (WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): 13 * rendering/RenderBox.cpp: 14 (WebCore::RenderBox::computeLogicalHeight const): 15 (WebCore::RenderBox::availableLogicalHeightUsing const): 16 (WebCore::RenderBox::computePositionedLogicalHeightUsing const): 17 (WebCore::RenderBox::computeLogicalWidthFromAspectRatio const): 18 (WebCore::RenderBox::computeMinMaxLogicalWidthFromAspectRatio const): 19 * rendering/style/RenderStyle.h: 20 (WebCore::RenderStyle::boxSizingForAspectRatio const): 21 1 22 2021-02-08 Simon Fraser <simon.fraser@apple.com> 2 23 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r271934 r272569 3212 3212 availableHeight = std::max(0_lu, constrainContentBoxLogicalHeightByMinMax(contentBoxHeight - scrollbarLogicalHeight(), WTF::nullopt)); 3213 3213 } else if (shouldComputeLogicalHeightFromAspectRatio()) { 3214 availableHeight = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizing (), logicalWidth());3214 availableHeight = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizingForAspectRatio(), logicalWidth()); 3215 3215 } else if (styleToUse.logicalHeight().isPercentOrCalculated() && !isOutOfFlowPositionedWithSpecifiedHeight) { 3216 3216 Optional<LayoutUnit> heightWithScrollbar = computePercentageLogicalHeight(styleToUse.logicalHeight()); -
trunk/Source/WebCore/rendering/RenderBox.cpp
r272363 r272569 2945 2945 LayoutUnit intrinsicHeight = computedValues.m_extent - borderAndPaddingLogicalHeight(); 2946 2946 if (shouldComputeLogicalHeightFromAspectRatio()) 2947 heightResult = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizing (), logicalWidth());2947 heightResult = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizingForAspectRatio(), logicalWidth()); 2948 2948 else 2949 2949 heightResult = computeLogicalHeightUsing(MainOrPreferredSize, style().logicalHeight(), intrinsicHeight).valueOr(computedValues.m_extent); … … 3377 3377 3378 3378 if (shouldComputeLogicalHeightFromAspectRatio()) 3379 return blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizing (), logicalWidth());3379 return blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizingForAspectRatio(), logicalWidth()); 3380 3380 3381 3381 if (h.isPercentOrCalculated() && isOutOfFlowPositioned() && !isRenderFragmentedFlow()) { … … 4154 4154 resolvedLogicalHeight = computeIntrinsicLogicalContentHeightUsing(logicalHeightLength, contentLogicalHeight, bordersPlusPadding).value(); 4155 4155 else if (fromAspectRatio) { 4156 resolvedLogicalHeight = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizing (), logicalWidth());4156 resolvedLogicalHeight = blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizingForAspectRatio(), logicalWidth()); 4157 4157 resolvedLogicalHeight = std::max(LayoutUnit(), resolvedLogicalHeight - bordersPlusPadding); 4158 4158 } else … … 5112 5112 LayoutUnit logicalHeightforAspectRatio = computedValues.m_extent; 5113 5113 5114 auto logicalWidth = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizing (), logicalHeightforAspectRatio);5114 auto logicalWidth = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), LayoutUnit(style().logicalAspectRatio()), style().boxSizingForAspectRatio(), logicalHeightforAspectRatio); 5115 5115 5116 5116 LayoutUnit containerWidthInInlineDirection = std::max<LayoutUnit>(0, containingBlockLogicalWidthForContentInFragment(fragment)); … … 5126 5126 LayoutUnit transferredMaxSize = LayoutUnit::max(); 5127 5127 if (blockMinSize > LayoutUnit()) 5128 transferredMinSize = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), ratio, style().boxSizing (), blockMinSize);5128 transferredMinSize = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), ratio, style().boxSizingForAspectRatio(), blockMinSize); 5129 5129 if (blockMaxSize != LayoutUnit::max()) 5130 transferredMaxSize = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), ratio, style().boxSizing (), blockMaxSize);5130 transferredMaxSize = inlineSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), ratio, style().boxSizingForAspectRatio(), blockMaxSize); 5131 5131 // Minimum size wins over maximum size. 5132 5132 transferredMaxSize = std::max(transferredMaxSize, transferredMinSize); -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r272035 r272569 513 513 return aspectRatioWidth() / aspectRatioHeight(); 514 514 return aspectRatioHeight() / aspectRatioWidth(); 515 } 516 BoxSizing boxSizingForAspectRatio() const 517 { 518 if (aspectRatioType() == AspectRatioType::AutoAndRatio) 519 return BoxSizing::ContentBox; 520 return boxSizing(); 515 521 } 516 522 bool hasAspectRatio() const { return aspectRatioType() == AspectRatioType::Ratio || aspectRatioType() == AspectRatioType::AutoAndRatio; }
Note: See TracChangeset
for help on using the changeset viewer.