[webkit-changes] [WebKit/WebKit] bbc81c: [CSS Container Queries][Style queries] Initial par...

Antti Koivisto noreply at github.com
Thu Feb 8 14:41:13 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bbc81c098ea4d0410dc5c3ee59aeb254324b00a6
      https://github.com/WebKit/WebKit/commit/bbc81c098ea4d0410dc5c3ee59aeb254324b00a6
  Author: Antti Koivisto <antti at apple.com>
  Date:   2024-02-08 (Thu, 08 Feb 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization-expected.txt
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/css/MediaQueryParserContext.cpp
    M Source/WebCore/css/MediaQueryParserContext.h
    M Source/WebCore/css/parser/CSSParserContext.cpp
    M Source/WebCore/css/parser/CSSParserContext.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/GenericMediaQueryParser.cpp
    M Source/WebCore/css/query/GenericMediaQueryParser.h
    M Source/WebCore/css/query/GenericMediaQuerySerialization.cpp
    M Source/WebCore/css/query/GenericMediaQueryTypes.h
    M Source/WebCore/css/query/MediaQueryParser.cpp
    M Source/WebCore/css/query/MediaQueryParser.h
    M Source/WebCore/style/ContainerQueryEvaluator.cpp

  Log Message:
  -----------
  [CSS Container Queries][Style queries] Initial parsing support
https://bugs.webkit.org/show_bug.cgi?id=268992
rdar://122550262

Reviewed by Alan Baradlay.

Parse @container style(--custom-property:foo)

https://drafts.csswg.org/css-contain-3/#container-style-query

* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization-expected.txt:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

Feature flag, off by default.

* Source/WebCore/css/MediaQueryParserContext.cpp:
(WebCore::MediaQueryParserContext::MediaQueryParserContext):
* Source/WebCore/css/MediaQueryParserContext.h:
* Source/WebCore/css/parser/CSSParserContext.cpp:
* Source/WebCore/css/parser/CSSParserContext.h:
* Source/WebCore/css/query/ContainerQueryFeatures.cpp:
(WebCore::CQ::Features::StyleFeatureSchema::StyleFeatureSchema):

Add a feature schema for custom property style queries. Evaluation is not yet implemented.

(WebCore::CQ::Features::style):
* Source/WebCore/css/query/ContainerQueryFeatures.h:
* Source/WebCore/css/query/ContainerQueryParser.cpp:
(WebCore::CQ::ContainerQueryParser::isValidFunctionId):

Allow style() functions in container queries.

(WebCore::CQ::ContainerQueryParser::schemaForFeatureName):
* Source/WebCore/css/query/ContainerQueryParser.h:
* Source/WebCore/css/query/GenericMediaQueryParser.cpp:
(WebCore::MQ::consumeFeatureName):
(WebCore::MQ::FeatureParser::consumeBooleanOrPlainFeature):

Consume custom properties as feature names and values.

(WebCore::MQ::FeatureParser::validateFeatureAgainstSchema):

Validate custom property value type.

* Source/WebCore/css/query/GenericMediaQueryParser.h:
(WebCore::MQ::GenericMediaQueryParser::consumeCondition):
(WebCore::MQ::GenericMediaQueryParser::isValidFunctionId):
(WebCore::MQ::GenericMediaQueryParser<ConcreteParser>::consumeCondition):
(WebCore::MQ::GenericMediaQueryParser<ConcreteParser>::consumeQueryInParens):

Add support for function-like productions (`style()`) in the generic query grammar.

(WebCore::MQ::GenericMediaQueryParser<ConcreteParser>::consumeAndValidateFeature):
(WebCore::MQ::GenericMediaQueryParser<ConcreteParser>::validateFeature):
(WebCore::MQ::GenericMediaQueryParser<ConcreteParser>::schemaForFeatureName):
* Source/WebCore/css/query/GenericMediaQuerySerialization.cpp:
(WebCore::MQ::serialize):
* Source/WebCore/css/query/GenericMediaQueryTypes.h:
* Source/WebCore/css/query/MediaQueryParser.cpp:
(WebCore::MQ::MediaQueryParser::schemaForFeatureName):
* Source/WebCore/css/query/MediaQueryParser.h:
* Source/WebCore/style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer):

Canonical link: https://commits.webkit.org/274315@main




More information about the webkit-changes mailing list