[webkit-changes] [WebKit/WebKit] 2dc309: CSS nesting: parsing of style rule inside style rule.
Matthieu Dubet
noreply at github.com
Mon Dec 19 05:56:15 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2dc309f4a725d902f5c24909e84d7cdabb499c9f
https://github.com/WebKit/WebKit/commit/2dc309f4a725d902f5c24909e84d7cdabb499c9f
Author: Matthieu Dubet <m_dubet at apple.com>
Date: 2022-12-19 (Mon, 19 Dec 2022)
Changed paths:
M LayoutTests/fast/css/style-enumerate-properties-expected.txt
M LayoutTests/fast/css/style-enumerate-properties.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative.html
R LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-parsing-expected.txt
R LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-parsing.html
M LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156.xml
M LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156b.xml
M LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156c.xml
M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/selectors.js
M Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
M Source/WebCore/css/CSSComputedStyleDeclaration.cpp
M Source/WebCore/css/CSSComputedStyleDeclaration.h
M Source/WebCore/css/CSSSelector.cpp
M Source/WebCore/css/CSSSelector.h
M Source/WebCore/css/CSSStyleDeclaration.h
M Source/WebCore/css/CSSStyleDeclaration.idl
M Source/WebCore/css/CSSStyleRule.cpp
M Source/WebCore/css/PropertySetCSSStyleDeclaration.h
M Source/WebCore/css/SelectorChecker.cpp
M Source/WebCore/css/StyleProperties.cpp
M Source/WebCore/css/StyleProperties.h
M Source/WebCore/css/StyleRule.cpp
M Source/WebCore/css/StyleRule.h
M Source/WebCore/css/parser/CSSParser.cpp
M Source/WebCore/css/parser/CSSParserContext.cpp
M Source/WebCore/css/parser/CSSParserContext.h
M Source/WebCore/css/parser/CSSParserImpl.cpp
M Source/WebCore/css/parser/CSSParserImpl.h
M Source/WebCore/css/parser/CSSSelectorParser.cpp
M Source/WebCore/css/parser/CSSSelectorParser.h
M Source/WebCore/cssjit/SelectorCompiler.cpp
Log Message:
-----------
CSS nesting: parsing of style rule inside style rule.
https://bugs.webkit.org/show_bug.cgi?id=249263
rdar://103146832
Reviewed by Antti Koivisto.
This implements experimental support to parse nested style rule inside style rule.
This is based on the css-nesting-1 editor draft as of today,
which describes the so-called "option 3" (non letter start) syntax.
https://github.com/w3c/csswg-drafts/blob/main/css-nesting-1/proposals.md
This is missing:
- any support for having nested at-rule inside style rule.
- CSSOM
- selector matching
* LayoutTests/fast/css/style-enumerate-properties-expected.txt:
* LayoutTests/fast/css/style-enumerate-properties.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative.html:
* LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-parsing-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-parsing.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156.xml:
* LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156b.xml:
* LayoutTests/imported/w3c/web-platform-tests/css/selectors/old-tests/css3-modsel-156c.xml:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/dom/nodes/selectors.js:
* Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:
* Source/WebCore/css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssRules const):
* Source/WebCore/css/CSSComputedStyleDeclaration.h:
* Source/WebCore/css/CSSSelector.cpp:
(WebCore::simpleSelectorSpecificity):
(WebCore::CSSSelector::selectorText const):
* Source/WebCore/css/CSSSelector.h:
* Source/WebCore/css/CSSStyleDeclaration.h:
* Source/WebCore/css/CSSStyleDeclaration.idl:
* Source/WebCore/css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::cssText const):
* Source/WebCore/css/PropertySetCSSStyleDeclaration.h:
* Source/WebCore/css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
* Source/WebCore/css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::createEmpty):
* Source/WebCore/css/StyleProperties.h:
* Source/WebCore/css/StyleRule.cpp:
(WebCore::StyleRule::averageSizeInBytes):
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::create):
(WebCore::StyleRule::createForSplitting):
* Source/WebCore/css/StyleRule.h:
* Source/WebCore/css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSelector):
* Source/WebCore/css/parser/CSSParserContext.cpp:
(WebCore::operator==):
(WebCore::add):
* Source/WebCore/css/parser/CSSParserContext.h:
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parseRule):
(WebCore::CSSParserImpl::consumeRuleList):
(WebCore::CSSParserImpl::consumeQualifiedRule):
(WebCore::CSSParserImpl::consumeStyleRule):
(WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
(WebCore::CSSParserImpl::consumeDeclarationList):
(WebCore::CSSParserImpl::consumeStyleBlock):
* Source/WebCore/css/parser/CSSParserImpl.h:
(WebCore::CSSParserImpl::consumeQualifiedRule):
(WebCore::CSSParserImpl::consumeStyleRule):
(WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
(WebCore::CSSParserImpl::consumeStyleBlock):
* Source/WebCore/css/parser/CSSSelectorParser.cpp:
(WebCore::parseCSSSelector):
(WebCore::CSSSelectorParser::CSSSelectorParser):
(WebCore::CSSSelectorParser::consumeSimpleSelector):
(WebCore::CSSSelectorParser::consumeNesting):
* Source/WebCore/css/parser/CSSSelectorParser.h:
* Source/WebCore/cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
Canonical link: https://commits.webkit.org/258079@main
More information about the webkit-changes
mailing list