[webkit-changes] [WebKit/WebKit] 2de47e: [css-anchor-position-1] Implement evaluating ancho...
Kiet Ho
noreply at github.com
Wed Oct 30 10:16:06 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2de47ea89dfd08f075fcb94b4a5f576979ec1410
https://github.com/WebKit/WebKit/commit/2de47ea89dfd08f075fcb94b4a5f576979ec1410
Author: Kiet Ho <kiet.ho at apple.com>
Date: 2024-10-30 (Wed, 30 Oct 2024)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-fallback-invalidation-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-getComputedStyle-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-inherited-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-invalid-fallback-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-002-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-inline-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-002-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-dynamic-002-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-dynamic-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-grid-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-inline-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-002-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-005-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-006-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-colspan-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-colspan-002-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-fixed-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-nested-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-query-fallback-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-minmax-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-replaced-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-writing-modes-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-default-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-eval-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-name-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-typed-om-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-anchor-multicol-display.tentative-expected.txt
M Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp
M Source/WebCore/css/calc/CSSCalcTree+Copy.cpp
M Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp
M Source/WebCore/css/calc/CSSCalcTree+Parser.cpp
M Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp
M Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp
M Source/WebCore/css/calc/CSSCalcTree.h
M Source/WebCore/style/AnchorPositionEvaluator.cpp
M Source/WebCore/style/AnchorPositionEvaluator.h
Log Message:
-----------
[css-anchor-position-1] Implement evaluating anchor-size()
rdar://137158830
https://bugs.webkit.org/show_bug.cgi?id=280789
Reviewed by Antti Koivisto.
This commit implements evaluation of anchor-size(). anchor-size() works
similarily to anchor() - it finds the anchor being referenced and returns
the width or height of the anchor element. Since the current anchor
finding logic lies in anchor(), this commit moves the logic to a separate
function that is shared between anchor() and anchor-size().
* LayoutTests/TestExpectations:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-fallback-invalidation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-getComputedStyle-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-inherited-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-invalid-fallback-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-inline-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-name-multicol-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-dynamic-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-dynamic-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-grid-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-inline-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-005-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-006-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-colspan-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-colspan-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-fixed-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-position-multicol-nested-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-query-fallback-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-minmax-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-replaced-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-writing-modes-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-default-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-eval-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-name-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-typed-om-expected.txt:
* Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp:
(WebCore::CSSCalc::collectComputedStyleDependencies):
* Source/WebCore/css/calc/CSSCalcTree+Copy.cpp:
(WebCore::CSSCalc::copy):
* Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp:
(WebCore::CSSCalc::evaluate): Implement evaluation of anchor-size()
* Source/WebCore/css/calc/CSSCalcTree+Parser.cpp:
(WebCore::CSSCalc::cssValueIDToAnchorSizeDimension):
(WebCore::CSSCalc::consumeAnchorSize):
* Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp:
(WebCore::CSSCalc::serializeAnchorSizeDimension):
(WebCore::CSSCalc::serializeMathFunctionArguments):
* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp:
(WebCore::CSSCalc::simplify): Implement simplification of anchor-size()
(WebCore::CSSCalc::copyAndSimplifyChildren):
* Source/WebCore/css/calc/CSSCalcTree.h:
* Source/WebCore/style/AnchorPositionEvaluator.cpp:
(WebCore::Style::isSizingProperty): Add function to check if a CSS property is a sizing property.
(WebCore::Style::isMarginProperty): Add function to check if a CSS property is a margin property.
(WebCore::Style::AnchorPositionEvaluator::findAnchorAndAttemptResolution): Separate anchor resolution logic into its own function.
(WebCore::Style::AnchorPositionEvaluator::evaluate): Change to use AnchorPositionEvaluator::findAnchorAndAttemptResolution
(WebCore::Style::defaultDimensionForPropertyID): Add function to get the default dimension given the current CSS property being resolved, if the dimension is not explicitly given.
(WebCore::Style::anchorSizeDimensionToPhysicalDimension): Add function to resolve <anchor-size> to the physical dimension (width or height)
(WebCore::Style::AnchorPositionEvaluator::evaluateSize): Add function to evaluate anchor-size()
* Source/WebCore/style/AnchorPositionEvaluator.h:
Canonical link: https://commits.webkit.org/285911@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list