[webkit-changes] [WebKit/WebKit] 2a76b5: [CSS Container Queries][Style queries] Basic evalu...
Antti Koivisto
noreply at github.com
Fri Feb 9 08:26:42 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2a76b5d5da5c7bdd0458253953c8e88e7f4a42f5
https://github.com/WebKit/WebKit/commit/2a76b5d5da5c7bdd0458253953c8e88e7f4a42f5
Author: Antti Koivisto <antti at apple.com>
Date: 2024-02-09 (Fri, 09 Feb 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-parsing-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/custom-property-style-queries-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/custom-property-style-query-change-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/display-contents-dynamic-style-queries-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/nested-size-style-container-invalidation-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-005-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/query-evaluation-style-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-container-for-shadow-dom-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-container-invalidation-inheritance-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-query-with-unknown-width-expected.txt
M Source/WebCore/css/parser/CSSParserTokenRange.cpp
M Source/WebCore/css/parser/CSSParserTokenRange.h
M Source/WebCore/css/query/ContainerQuery.h
M Source/WebCore/css/query/ContainerQueryFeatures.cpp
M Source/WebCore/css/query/GenericMediaQueryParser.cpp
M Source/WebCore/style/ContainerQueryEvaluator.cpp
M Source/WebCore/style/ContainerQueryEvaluator.h
M Source/WebCore/style/ElementRuleCollector.cpp
M Source/WebCore/style/SelectorMatchingState.h
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/StyleTreeResolver.h
M Source/WebCore/style/StyleUpdate.cpp
M Source/WebCore/style/StyleUpdate.h
Log Message:
-----------
[CSS Container Queries][Style queries] Basic evaluation support
https://bugs.webkit.org/show_bug.cgi?id=269061
rdar://122623247
Reviewed by Alan Baradlay.
Evaluate @container style(--property:foo) queries.
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-parsing-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/custom-property-style-queries-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/custom-property-style-query-change-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/display-contents-dynamic-style-queries-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/nested-size-style-container-invalidation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-005-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/query-evaluation-style-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-container-for-shadow-dom-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-container-invalidation-inheritance-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-query-with-unknown-width-expected.txt:
* Source/WebCore/css/parser/CSSParserTokenRange.cpp:
(WebCore::CSSParserTokenRange::consumeAllExcludingTrailingWhitespace):
Add a helper.
* Source/WebCore/css/parser/CSSParserTokenRange.h:
* Source/WebCore/css/query/ContainerQuery.h:
* Source/WebCore/css/query/ContainerQueryFeatures.cpp:
Evaluate the query by looking up and comparing the property value.
* Source/WebCore/css/query/GenericMediaQueryParser.cpp:
(WebCore::MQ::consumeCustomPropertyValue):
Don't include trailing whitespace to custom property value.
(WebCore::MQ::FeatureParser::consumeBooleanOrPlainFeature):
* Source/WebCore/style/ContainerQueryEvaluator.h:
Pass the currently resolved style via ContainerQueryEvaluationState.
* Source/WebCore/style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::styleForContainer):
(WebCore::Style::ContainerQueryEvaluator::featureEvaluationContextForQuery const):
Look up the currently resolved style for the container. It may not have yet been committed to the render tree.
Allow containers that don't generate boxes.
(WebCore::Style::ContainerQueryEvaluator::selectContainer):
Similarly use the current style for container selection.
Allow any element to be a container for style queries.
* Source/WebCore/style/ContainerQueryEvaluator.h:
* Source/WebCore/style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::containerQueriesMatch):
* Source/WebCore/style/SelectorMatchingState.h:
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Scope::Scope):
Pass a reference to the current style update to container query evaluation.
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::popParent):
(WebCore::Style::TreeResolver::resolve):
* Source/WebCore/style/StyleTreeResolver.h:
* Source/WebCore/style/StyleUpdate.cpp:
(WebCore::Style::Update::addInitialContainingBlockUpdate):
* Source/WebCore/style/StyleUpdate.h:
(WebCore::Style::Update::addInitialContainingBlockUpdate): Deleted.
Canonical link: https://commits.webkit.org/274364@main
More information about the webkit-changes
mailing list