Skip to content

Commit

Permalink
[contain-intrinsic-size] Support contain-intrinsic-size:inherit
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=259270

Reviewed by Tim Nguyen.

Support contain-intrinsic-size:inherit and add a subtest for it.

* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/animation/contain-intrinsic-size-interpolation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-computed.html:
* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicWidth):
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicHeight):

Canonical link: https://commits.webkit.org/266100@main
  • Loading branch information
rwlbuis committed Jul 17, 2023
1 parent 51d9b8f commit d950636
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,20 +65,20 @@ PASS CSS Transitions with transition: all: property <contain-intrinsic-size> fro
PASS CSS Transitions with transition: all: property <contain-intrinsic-size> from [inherit] to [20px] at (0.6) should be [20px]
PASS CSS Transitions with transition: all: property <contain-intrinsic-size> from [inherit] to [20px] at (1) should be [20px]
PASS CSS Transitions with transition: all: property <contain-intrinsic-size> from [inherit] to [20px] at (1.5) should be [20px]
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (-0.3) should be [inherit] assert_equals: expected "none " but got "59px 72px "
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0) should be [inherit] assert_equals: expected "none " but got "50px 60px "
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.3) should be [inherit] assert_equals: expected "none " but got "41px 48px "
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "35px 40px "
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "32px 36px "
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (-0.3) should be [inherit]
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0) should be [inherit]
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.3) should be [inherit]
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.5) should be [20px]
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.6) should be [20px]
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1) should be [20px]
FAIL CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "5px 0px "
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (-0.3) should be [inherit] assert_equals: expected "none " but got "59px 72px "
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0) should be [inherit] assert_equals: expected "none " but got "50px 60px "
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.3) should be [inherit] assert_equals: expected "none " but got "41px 48px "
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "35px 40px "
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "32px 36px "
PASS CSS Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1.5) should be [20px]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (-0.3) should be [inherit]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0) should be [inherit]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.3) should be [inherit]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.5) should be [20px]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (0.6) should be [20px]
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1) should be [20px]
FAIL Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "5px 0px "
PASS Web Animations: property <contain-intrinsic-size> from [inherit] to [20px] at (1.5) should be [20px]
PASS CSS Transitions: property <contain-intrinsic-size> from [unset] to [20px] at (-0.3) should be [20px]
PASS CSS Transitions: property <contain-intrinsic-size> from [unset] to [20px] at (0) should be [20px]
PASS CSS Transitions: property <contain-intrinsic-size> from [unset] to [20px] at (0.3) should be [20px]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ PASS Property contain-intrinsic-size value '1px auto 1px'
PASS Property contain-intrinsic-size value '2vw 3px'
PASS Property contain-intrinsic-size value '2px 3vh'
PASS Property contain-intrinsic-size value '5px 5px'
PASS Property contain-intrinsic-size value 'inherit'
PASS Property contain-intrinsic-width value 'none'
PASS Property contain-intrinsic-width value '1px'
PASS Property contain-intrinsic-width value 'auto 1px'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id=target></div>
<div style="contain-intrinsic-size: 5px 5px">
<div id=target></div>
</div>
<div id=scratch></div>
<script>

Expand All @@ -28,6 +30,7 @@
test_computed_value("contain-intrinsic-size", "2vw 3px", length_ref("2vw") + " 3px");
test_computed_value("contain-intrinsic-size", "2px 3vh", "2px " + length_ref("3vh"));
test_computed_value("contain-intrinsic-size", "5px 5px", "5px");
test_computed_value("contain-intrinsic-size", "inherit", "5px");

test_computed_value("contain-intrinsic-width", "none");
test_computed_value("contain-intrinsic-width", "1px");
Expand Down
8 changes: 6 additions & 2 deletions Source/WebCore/style/StyleBuilderCustom.h
Original file line number Diff line number Diff line change
Expand Up @@ -2004,8 +2004,10 @@ inline void BuilderCustom::applyInitialContainIntrinsicWidth(BuilderState& build
builderState.style().setContainIntrinsicWidth(RenderStyle::initialContainIntrinsicWidth());
}

inline void BuilderCustom::applyInheritContainIntrinsicWidth(BuilderState&)
inline void BuilderCustom::applyInheritContainIntrinsicWidth(BuilderState& builderState)
{
builderState.style().setContainIntrinsicWidthType(builderState.parentStyle().containIntrinsicWidthType());
builderState.style().setContainIntrinsicWidth(builderState.parentStyle().containIntrinsicWidth());
}

inline void BuilderCustom::applyValueContainIntrinsicWidth(BuilderState& builderState, CSSValue& value)
Expand Down Expand Up @@ -2047,8 +2049,10 @@ inline void BuilderCustom::applyInitialContainIntrinsicHeight(BuilderState& buil
builderState.style().setContainIntrinsicHeight(RenderStyle::initialContainIntrinsicHeight());
}

inline void BuilderCustom::applyInheritContainIntrinsicHeight(BuilderState&)
inline void BuilderCustom::applyInheritContainIntrinsicHeight(BuilderState& builderState)
{
builderState.style().setContainIntrinsicHeightType(builderState.parentStyle().containIntrinsicHeightType());
builderState.style().setContainIntrinsicHeight(builderState.parentStyle().containIntrinsicHeight());
}

inline void BuilderCustom::applyValueContainIntrinsicHeight(BuilderState& builderState, CSSValue& value)
Expand Down

0 comments on commit d950636

Please sign in to comment.