Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9bff4dfd6167f4b9d722462a587c5030c79b0b39
https://github.com/WebKit/WebKit/commit/9bff4dfd6167f4b9d722462a587c5030c79b0b39
Author: Alan Baradlay <[email protected]>
Date: 2026-04-13 (Mon, 13 Apr 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child.html
M Source/WebCore/rendering/RenderBlock.cpp
Log Message:
-----------
`position: absolute` with inner `max-height: 100%` makes `height:
max-content` resolve to 0
https://bugs.webkit.org/show_bug.cgi?id=289876
<rdar://problem/147333178>
Reviewed by Antti Koivisto.
When an absolutely positioned box has an intrinsic sizing keyword for
height (max-content, min-content, fit-content), its children's
percentage heights should be unresolvable (CSS Sizing 3, 5.2.1). The
percentage is cyclic -- it resolves against the parent's intrinsic size,
which itself depends on the child. Per 3.2.1, the property "behaves
as auto" in this case. The child gets whatever height it gets (from
content or explicit values), and the abspos box sizes to that via
max-content.
What was happening instead:
1. Parent has height:max-content, position:absolute. Child has max-height:100%.
2. To resolve the percentage, WebKit checks if the parent has a definite height.
3. The out-of-flow special case treats any non-auto height as definite
and reads the current logicalHeight() -- which is 0 mid-layout.
4. Child's max-height:100% resolves to 0, parent's max-content is 0.
The fix changes `!isAuto()` to `isSpecified()` (length/percentage/calc
only) in the out-of-flow definite height check. This excludes intrinsic
keywords while keeping stretch/fill-available on the existing
`isResolveableStretchSize` path (which correctly treats resolvable
stretch as definite).
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child.html:
Added.
Regression test for rdar://172513516 -- stretch must still provide
a definite height for percentage resolution.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child.html:
Added.
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
Canonical link: https://commits.webkit.org/311084@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications