7089c76408
https://bugs.webkit.org/show_bug.cgi?id=228894 Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/selectors/has-basic-expected.txt: * web-platform-tests/css/selectors/has-relative-argument-expected.txt: * web-platform-tests/css/selectors/parsing/parse-has-expected.txt: * web-platform-tests/dom/nodes/Element-closest-expected.txt: Source/WebCore: This patch adds basic support for :has() pseudo-class, https://drafts.csswg.org/selectors/#has-pseudo. The initial implementation is very inefficient. There is no support for invalidation yet. The feature is disabled by default. * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText const): Serialization. * css/CSSSelector.h: * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const): Selector matching using nested SelectorChecker. * css/SelectorPseudoClassAndCompatibilityElementMap.in: * css/parser/CSSParserContext.cpp: (WebCore::operator==): (WebCore::add): * css/parser/CSSParserContext.h: * css/parser/CSSParserSelector.h: (WebCore::CSSParserSelector::setPseudoClassType): * css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumeForgivingSelectorList): Add a template version of the forgiving parsing function. (WebCore::CSSSelectorParser::consumeForgivingComplexSelectorList): Use it for complex selector lists. (WebCore::CSSSelectorParser::consumeForgivingRelativeSelectorList): And the new relative selector lists. (WebCore::CSSSelectorParser::consumeRelativeSelector): Parse relative selectors like "> foo". (WebCore::CSSSelectorParser::consumePseudo): (WebCore::CSSSelectorParser::consumeComplexForgivingSelectorList): Deleted. * css/parser/CSSSelectorParser.h: * cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::addPseudoClassType): No compiler support yet. Source/WTF: * Scripts/Preferences/WebPreferencesExperimental.yaml: Add off-by-default HasPseudoClassEnabled preference value. Canonical link: https://commits.webkit.org/240719@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281295 268f45cc-cd09-0410-ab3c-d52691b4dbfc |
||
---|---|---|
.. | ||
CompiledSelector.h | ||
FunctionCall.h | ||
RegisterAllocator.h | ||
SelectorCompiler.cpp | ||
SelectorCompiler.h | ||
StackAllocator.h |