Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8b5352bbeb711bdfd7a273503abdf543818abdae
https://github.com/WebKit/WebKit/commit/8b5352bbeb711bdfd7a273503abdf543818abdae
Author: Alan Baradlay <[email protected]>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/fast/box-sizing/abspos-height-fill-available-uses-cb-content-expected.html
A
LayoutTests/fast/box-sizing/abspos-height-fill-available-uses-cb-content.html
A
LayoutTests/fast/box-sizing/abspos-max-height-fill-available-uses-cb-content-expected.html
A
LayoutTests/fast/box-sizing/abspos-max-height-fill-available-uses-cb-content.html
A
LayoutTests/fast/box-sizing/abspos-min-height-fill-available-uses-cb-content-expected.html
A
LayoutTests/fast/box-sizing/abspos-min-height-fill-available-uses-cb-content.html
A
LayoutTests/fast/box-sizing/fill-available-and-stretch-side-by-side-expected.html
A LayoutTests/fast/box-sizing/fill-available-and-stretch-side-by-side.html
A
LayoutTests/fast/box-sizing/flex-basis-fill-available-column-flex-expected.html
A LayoutTests/fast/box-sizing/flex-basis-fill-available-column-flex.html
A
LayoutTests/fast/box-sizing/getComputedStyle-distinguishes-fill-available-from-stretch-expected.txt
A
LayoutTests/fast/box-sizing/getComputedStyle-distinguishes-fill-available-from-stretch.html
A
LayoutTests/fast/box-sizing/height-fill-available-indefinite-cb-expected.html
A LayoutTests/fast/box-sizing/height-fill-available-indefinite-cb.html
A
LayoutTests/fast/box-sizing/max-height-fill-available-indefinite-cb-expected.html
A LayoutTests/fast/box-sizing/max-height-fill-available-indefinite-cb.html
A
LayoutTests/fast/box-sizing/min-height-fill-available-indefinite-cb-expected.html
A LayoutTests/fast/box-sizing/min-height-fill-available-indefinite-cb.html
A LayoutTests/fast/box-sizing/quirks-height-stretch-expected.html
A LayoutTests/fast/box-sizing/quirks-height-stretch.html
A LayoutTests/fast/box-sizing/quirks-max-height-stretch-expected.html
A LayoutTests/fast/box-sizing/quirks-max-height-stretch.html
A LayoutTests/fast/box-sizing/quirks-min-height-stretch-expected.html
A LayoutTests/fast/box-sizing/quirks-min-height-stretch.html
A LayoutTests/fast/box-sizing/quirks-replaced-height-stretch-expected.html
A LayoutTests/fast/box-sizing/quirks-replaced-height-stretch.html
A
LayoutTests/fast/box-sizing/replaced-height-fill-available-indefinite-cb-expected.html
A
LayoutTests/fast/box-sizing/replaced-height-fill-available-indefinite-cb.html
A
LayoutTests/fast/box-sizing/replaced-max-height-fill-available-indefinite-cb-expected.html
A
LayoutTests/fast/box-sizing/replaced-max-height-fill-available-indefinite-cb.html
A
LayoutTests/fast/box-sizing/replaced-width-fill-available-ignores-float-expected.html
A
LayoutTests/fast/box-sizing/replaced-width-fill-available-ignores-float.html
M LayoutTests/fast/css-intrinsic-dimensions/height-positioned-expected.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative-expected.txt
M Source/WebCore/rendering/RenderBlock.cpp
M Source/WebCore/rendering/RenderBox.cpp
M Source/WebCore/rendering/RenderBox.h
M Source/WebCore/rendering/RenderFlexibleBox.cpp
M Source/WebCore/rendering/RenderReplaced.cpp
M Source/WebCore/style/values/flexbox/StyleFlexBasis.h
M
Source/WebCore/style/values/primitives/StyleLengthWrapper+CSSValueConversion.h
M Source/WebCore/style/values/sizing/StyleMaximumSize.h
M Source/WebCore/style/values/sizing/StyleMinimumSize.h
M Source/WebCore/style/values/sizing/StylePreferredSize.h
Log Message:
-----------
REGRESSION(309405@main): scrypted has missing content
https://bugs.webkit.org/show_bug.cgi?id=315406
rdar://177015892
Reviewed by Simon Fraser.
<!DOCTYPE html>
<div style="min-height: -webkit-fill-available; background-color:
green;"></div>
The green box should fill the viewport. Instead its min-height resolved to 0.
309405@main folded -webkit-fill-available into the new CSS Sizing 4
stretch keyword and they became indistinguishable at parse time.
But their resolution semantics differ: stretch gates on whether the
immediate containing block has a definite block size and falls back
to the initial value when it does not. Fill-available skips that
gate and reads availableLogicalHeight() unconditionally, which walks
up the CB chain to the viewport. The legacy keyword inherited
stretch's gate, so min-height: -webkit-fill-available on a body-
level descendant in standards mode (where body.hasDefiniteLogical-
Height() is false) short-circuited to 0 instead of resolving via
the chain.
Re-add WebkitFillAvailable as a distinct keyword in the four sizing
variants and stop aliasing it to Stretch in the parser. Route the
legacy keyword through pre-309405@main code paths that resolve via
containingBlock()->availableLogicalHeight() unconditionally.
isStretch() returns true for either keyword so the existing call
sites stay unchanged; only the keyword-specific lambdas diverge.
Test fallout from undoing the alias mirrors the pre-309405@main
state: the three stretch-alias-{block,max,min}-block-size-001
WPT baselines go back to the failing patterns they had before the
alias landed (a few flex/grid subtests now pass that did not pre-
309405@main). The ImageOnlyFailure entries that 309447@main and
309461@main removed for cache-miss-001, fill-available-with-
absolute-position, fill-available-with-no-specified-containing-
block-height, and fill-available-with-percent-height-no-quirk are
re-added. height-positioned-expected.html reverts the 391px back
to 386px the test produced before 309405@main.
* LayoutTests/TestExpectations:
*
LayoutTests/fast/box-sizing/abspos-height-fill-available-uses-cb-content-expected.html:
Added.
*
LayoutTests/fast/box-sizing/abspos-height-fill-available-uses-cb-content.html:
Added.
*
LayoutTests/fast/box-sizing/abspos-max-height-fill-available-uses-cb-content-expected.html:
Added.
*
LayoutTests/fast/box-sizing/abspos-max-height-fill-available-uses-cb-content.html:
Added.
*
LayoutTests/fast/box-sizing/abspos-min-height-fill-available-uses-cb-content-expected.html:
Added.
*
LayoutTests/fast/box-sizing/abspos-min-height-fill-available-uses-cb-content.html:
Added.
*
LayoutTests/fast/box-sizing/fill-available-and-stretch-side-by-side-expected.html:
Added.
* LayoutTests/fast/box-sizing/fill-available-and-stretch-side-by-side.html:
Added.
*
LayoutTests/fast/box-sizing/flex-basis-fill-available-column-flex-expected.html:
Added.
* LayoutTests/fast/box-sizing/flex-basis-fill-available-column-flex.html: Added.
*
LayoutTests/fast/box-sizing/getComputedStyle-distinguishes-fill-available-from-stretch-expected.txt:
Added.
*
LayoutTests/fast/box-sizing/getComputedStyle-distinguishes-fill-available-from-stretch.html:
Added.
*
LayoutTests/fast/box-sizing/height-fill-available-indefinite-cb-expected.html:
Added.
* LayoutTests/fast/box-sizing/height-fill-available-indefinite-cb.html: Added.
*
LayoutTests/fast/box-sizing/max-height-fill-available-indefinite-cb-expected.html:
Added.
* LayoutTests/fast/box-sizing/max-height-fill-available-indefinite-cb.html:
Added.
*
LayoutTests/fast/box-sizing/min-height-fill-available-indefinite-cb-expected.html:
Added.
* LayoutTests/fast/box-sizing/min-height-fill-available-indefinite-cb.html:
Added.
* LayoutTests/fast/box-sizing/quirks-height-stretch-expected.html: Added.
* LayoutTests/fast/box-sizing/quirks-height-stretch.html: Added.
* LayoutTests/fast/box-sizing/quirks-max-height-stretch-expected.html: Added.
* LayoutTests/fast/box-sizing/quirks-max-height-stretch.html: Added.
* LayoutTests/fast/box-sizing/quirks-min-height-stretch-expected.html: Added.
* LayoutTests/fast/box-sizing/quirks-min-height-stretch.html: Added.
* LayoutTests/fast/box-sizing/quirks-replaced-height-stretch-expected.html:
Added.
* LayoutTests/fast/box-sizing/quirks-replaced-height-stretch.html: Added.
*
LayoutTests/fast/box-sizing/replaced-height-fill-available-indefinite-cb-expected.html:
Added.
*
LayoutTests/fast/box-sizing/replaced-height-fill-available-indefinite-cb.html:
Added.
*
LayoutTests/fast/box-sizing/replaced-max-height-fill-available-indefinite-cb-expected.html:
Added.
*
LayoutTests/fast/box-sizing/replaced-max-height-fill-available-indefinite-cb.html:
Added.
*
LayoutTests/fast/box-sizing/replaced-width-fill-available-ignores-float-expected.html:
Added.
* LayoutTests/fast/box-sizing/replaced-width-fill-available-ignores-float.html:
Added.
* LayoutTests/fast/css-intrinsic-dimensions/height-positioned-expected.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative-expected.txt:
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelfCollapsingBlock const):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::computeSizingKeywordLogicalContentHeightUsingGeneric
const):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing const):
(WebCore::RenderBox::computeOutOfFlowPositionedLogicalWidthUsing const):
(WebCore::RenderBox::computeOutOfFlowPositionedLogicalHeightUsing const):
* Source/WebCore/rendering/RenderBox.h:
(WebCore::RenderBox::isResolveableStretchSize const):
(WebCore::RenderBox::isUnresolveableStretchSize const):
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidthUsing const):
(WebCore::RenderReplaced::computeReplacedLogicalHeightUsingGeneric const):
* Source/WebCore/style/values/flexbox/StyleFlexBasis.h:
(WebCore::Style::FlexBasis::isStretch const):
(WebCore::Style::FlexBasis::isFillAvailable const):
*
Source/WebCore/style/values/primitives/StyleLengthWrapper+CSSValueConversion.h:
(WebCore::Style::processKeywordForCSSValueConversion):
* Source/WebCore/style/values/sizing/StyleMaximumSize.h:
(WebCore::Style::MaximumSize::isStretch const):
(WebCore::Style::MaximumSize::isFillAvailable const):
* Source/WebCore/style/values/sizing/StyleMinimumSize.h:
(WebCore::Style::MinimumSize::isStretch const):
(WebCore::Style::MinimumSize::isFillAvailable const):
* Source/WebCore/style/values/sizing/StylePreferredSize.h:
(WebCore::Style::PreferredSize::isStretch const):
(WebCore::Style::PreferredSize::isFillAvailable const):
Canonical link: https://commits.webkit.org/314009@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications