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

Reply via email to