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

Reply via email to