[webkit-changes] [WebKit/WebKit] 79434c: Support media-progress() and container-progress() ...
Sam Weinig
noreply at github.com
Sun Dec 15 18:06:11 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 79434c0efe51e2fc68ac9980f6f9a948dba0e58d
https://github.com/WebKit/WebKit/commit/79434c0efe51e2fc68ac9980f6f9a948dba0e58d
Author: Sam Weinig <sam at webkit.org>
Date: 2024-12-15 (Sun, 15 Dec 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-math-functions-tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-math-functions-tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-animation-math-functions-tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-animation-math-functions-tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-computed.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-computed.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-invalid.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-invalid.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-serialize.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-serialize.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-computed.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-computed.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-invalid.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-invalid.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-serialize.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-serialize.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-invalid.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-invalid.tentative.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-serialize.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-serialize.tentative.html
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/css/CSSValueKeywords.in
M Source/WebCore/css/calc/CSSCalcTree+CalculationValue.cpp
M Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp
A Source/WebCore/css/calc/CSSCalcTree+ContainerProgressEvaluator.cpp
A Source/WebCore/css/calc/CSSCalcTree+ContainerProgressEvaluator.h
M Source/WebCore/css/calc/CSSCalcTree+Copy.cpp
M Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp
A Source/WebCore/css/calc/CSSCalcTree+MediaProgressEvaluator.cpp
A Source/WebCore/css/calc/CSSCalcTree+MediaProgressEvaluator.h
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+Simplification.h
M Source/WebCore/css/calc/CSSCalcTree+Traversal.h
M Source/WebCore/css/calc/CSSCalcTree.cpp
M Source/WebCore/css/calc/CSSCalcTree.h
M Source/WebCore/css/parser/CSSParserContext.cpp
M Source/WebCore/css/parser/CSSParserContext.h
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Conditional.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Conditional.h
M Source/WebCore/css/query/ContainerQueryFeatures.cpp
M Source/WebCore/css/query/ContainerQueryFeatures.h
M Source/WebCore/css/query/ContainerQueryParser.cpp
M Source/WebCore/css/query/ContainerQueryParser.h
M Source/WebCore/css/query/GenericMediaQueryEvaluator.cpp
M Source/WebCore/css/query/GenericMediaQueryEvaluator.h
M Source/WebCore/css/query/GenericMediaQueryParser.h
M Source/WebCore/css/query/GenericMediaQueryTypes.h
M Source/WebCore/css/query/MediaQuery.h
M Source/WebCore/css/query/MediaQueryEvaluator.cpp
M Source/WebCore/css/query/MediaQueryFeatures.cpp
M Source/WebCore/css/query/MediaQueryFeatures.h
M Source/WebCore/css/query/MediaQueryParser.cpp
M Source/WebCore/css/query/MediaQueryParser.h
Log Message:
-----------
Support media-progress() and container-progress() CSS functions
https://bugs.webkit.org/show_bug.cgi?id=284669
Reviewed by Darin Adler.
Adds support for the `media-progress()` and `container-progress()` CSS
functions from CSS Values and Units 5:
https://drafts.csswg.org/css-values-5/#media-progress-func
https://drafts.csswg.org/css-values-5/#container-progress-func
Also updates the progress() CSS function from the same spec to its
updated syntax, removing keyword separators in favor of commas.
`media-progress()` and `container-progress()` are implemented behind
their own feature flags `CSSMediaProgressFunctionEnabled` and
`CSSContainerProgressFunctionEnabled` respectively, both of which
are set to the status level "preview".
The bulk of the change is factoring the existing media query and
container query feature schemas to support alternative "value
providing" interfaces which rather than reporting a boolean match
result, return a double value in canonical units. The remainder
is adding the parsing/serialization/evaluation for the new calc
nodes for each function.
* LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-math-functions-tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-math-functions-tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-animation-math-functions-tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-animation-math-functions-tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-computed.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-computed.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-invalid.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-invalid.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-serialize.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/container-progress-serialize.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-computed.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-computed.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-invalid.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-invalid.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-serialize.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/media-progress-serialize.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-invalid.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-invalid.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-serialize.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-serialize.tentative.html:
- Updates tests to the latest syntax in the spec and update now passing results.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
- Add new features for the new functions.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
- Add new files.
* Source/WebCore/css/CSSValueKeywords.in:
- Add new keywords for `media-progress` and `container-progress`.
* Source/WebCore/css/calc/CSSCalcTree+ContainerProgressEvaluator.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+ContainerProgressEvaluator.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+MediaProgressEvaluator.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+MediaProgressEvaluator.h: Added.
- Rather than duplicate evaluation in both the simplification and evaluation
phases, put the core evaluation of the new nodes into their own files.
* Source/WebCore/css/calc/CSSCalcTree+CalculationValue.cpp:
* Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Copy.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Parser.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp:
* Source/WebCore/css/calc/CSSCalcTree+Simplification.h:
* Source/WebCore/css/calc/CSSCalcTree+Traversal.h:
* Source/WebCore/css/calc/CSSCalcTree.cpp:
* Source/WebCore/css/calc/CSSCalcTree.h:
- Add support for the MediaProgress and ContainerProgress calc nodes.
* Source/WebCore/css/parser/CSSParserContext.cpp:
* Source/WebCore/css/parser/CSSParserContext.h:
- Add new settings for media-progress and container-progress for access
in the calc parser.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Conditional.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Conditional.h:
- Expose a helper to reject invalid container names; used by the
calc parser for container-progress().
* Source/WebCore/css/query/ContainerQueryFeatures.cpp:
* Source/WebCore/css/query/ContainerQueryFeatures.h:
* Source/WebCore/css/query/ContainerQueryParser.cpp:
* Source/WebCore/css/query/ContainerQueryParser.h:
* Source/WebCore/css/query/GenericMediaQueryEvaluator.cpp:
* Source/WebCore/css/query/GenericMediaQueryEvaluator.h:
* Source/WebCore/css/query/GenericMediaQueryTypes.h:
* Source/WebCore/css/query/MediaQuery.h:
* Source/WebCore/css/query/MediaQueryEvaluator.cpp:
* Source/WebCore/css/query/MediaQueryFeatures.cpp:
* Source/WebCore/css/query/MediaQueryFeatures.h:
* Source/WebCore/css/query/MediaQueryParser.cpp:
* Source/WebCore/css/query/MediaQueryParser.h:
- Refactor media query/container query schema code to allow
schemas to conform to new MediaProgressProviding and its
analog ContainerProgressProviding. Like the schemas, these
are provided as type erased singleton instances accessed
by name lookup.
Canonical link: https://commits.webkit.org/287862@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