Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: eb13205ab9fc826ace4794b51d3ac1c0fe96bd6e
https://github.com/WebKit/WebKit/commit/eb13205ab9fc826ace4794b51d3ac1c0fe96bd6e
Author: Yulun Wu <[email protected]>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-013-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-percentage-height-img-001-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-percentage-height-img-001.html
M Source/WebCore/rendering/RenderFlexibleBox.cpp
M Source/WebCore/rendering/RenderFlexibleBox.h
Log Message:
-----------
[flex] Fix widths for flex items with percentage-height descendants
https://bugs.webkit.org/show_bug.cgi?id=296562
<rdar://156902823>
Reviewed by Sammy Gill.
Some flex items should use the container's definite cross size when
computing geometries so aspect ratios and percentage heights resolve
correctly. Previously, this override was only used in
computeChildIntrinsicLogicalWidths.
This PR extracts that logic into a ScopedCrossAxisOverrideForFlexItem class
and adds it to computeFlexBaseSizeForFlexItem and computeFlexItemMinMaxSizes.
The scoped object takes a InvalidatePreferredWidths parameter to conditionally
invalidate
the flex item's preferred width. We assert in the destructor that this dirty
flag is consumed.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-013-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-percentage-height-img-001-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-percentage-height-img-001.html:
Added.
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedCrossAxisOverrideForFlexItem::ScopedCrossAxisOverrideForFlexItem):
(WebCore::ScopedCrossAxisOverrideForFlexItem::~ScopedCrossAxisOverrideForFlexItem):
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const):
(WebCore::RenderFlexibleBox::flexItemCrossSizeShouldUseContainerCrossSize
const):
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForFlexItem):
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes):
(WebCore::RenderFlexibleBox::constructFlexLayoutItem):
* Source/WebCore/rendering/RenderFlexibleBox.h:
Canonical link: https://commits.webkit.org/309544@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications