[webkit-changes] [WebKit/WebKit] ab61ba: [@property] Register custom properties from @prope...
Antti Koivisto
noreply at github.com
Mon Dec 19 16:32:36 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ab61bade88f0ba511ef1d2ea8dd191bbce7a8e73
https://github.com/WebKit/WebKit/commit/ab61bade88f0ba511ef1d2ea8dd191bbce7a8e73
Author: Antti Koivisto <antti at apple.com>
Date: 2022-12-19 (Mon, 19 Dec 2022)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-cssom-order-reverse-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-property-override-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inner-at-rules-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-animation-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-shadow-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-stylesheets-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-viewport-units-dynamic-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-viewport-units-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/determine-registration-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/registered-property-crosstalk-expected.txt
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/css/CSSPropertyRule.cpp
M Source/WebCore/css/CSSVariableReferenceValue.cpp
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/DOMCSSRegisterCustomProperty.cpp
M Source/WebCore/css/StyleProperties.cpp
M Source/WebCore/css/StyleRule.h
M Source/WebCore/css/parser/CSSParser.cpp
M Source/WebCore/css/parser/CSSParserImpl.cpp
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
A Source/WebCore/style/CustomPropertyRegistry.cpp
A Source/WebCore/style/CustomPropertyRegistry.h
M Source/WebCore/style/RuleSetBuilder.cpp
M Source/WebCore/style/RuleSetBuilder.h
M Source/WebCore/style/StyleBuilder.cpp
M Source/WebCore/style/StyleResolver.h
M Source/WebCore/style/StyleScope.cpp
M Source/WebCore/style/StyleScope.h
Log Message:
-----------
[@property] Register custom properties from @property rules
https://bugs.webkit.org/show_bug.cgi?id=249579
<rdar://problem/103516443>
Reviewed by Sam Weinig.
Make @property registrations from stylesheets work.
* LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-cssom-order-reverse-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-property-override-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inner-at-rules-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-animation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-shadow-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-stylesheets-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-viewport-units-dynamic-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-viewport-units-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/determine-registration-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/registered-property-crosstalk-expected.txt:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
* Source/WebCore/css/CSSPropertyRule.cpp:
(WebCore::CSSPropertyRule::initialValue const):
(WebCore::CSSPropertyRule::cssText const):
* Source/WebCore/css/CSSVariableReferenceValue.cpp:
(WebCore::resolveVariableReference):
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::ComputedStyleExtractor::customPropertyValue):
* Source/WebCore/css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
* Source/WebCore/css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::setCustomProperty):
* Source/WebCore/css/StyleRule.h:
* Source/WebCore/css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumePropertyRule):
Pass the initial value as parser tokens instead of a string to avoid unnecessary re-tokenization.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::customPropertyRegistry const):
(WebCore::Document::registerCSSCustomProperty): Deleted.
* Source/WebCore/dom/Document.h:
(WebCore::Document::registeredCSSCustomProperties const): Deleted.
Move registry ownership to Style::Scope.
* Source/WebCore/style/CustomPropertyRegistry.cpp: Added.
(WebCore::Style::CustomPropertyRegistry::CustomPropertyRegistry):
(WebCore::Style::CustomPropertyRegistry::get const):
Look up API registrations first, then stylesheet registrations.
(WebCore::Style::CustomPropertyRegistry::registerFromAPI):
(WebCore::Style::CustomPropertyRegistry::registerFromStylesheet):
Logic for registering a descriptor from a @property rule.
(WebCore::Style::CustomPropertyRegistry::clearRegisteredFromStylesheets):
* Source/WebCore/style/CustomPropertyRegistry.h: Added.
Add a registry class.
* Source/WebCore/style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::addChildRules):
Collect property rules.
Use switch.
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):
Register the collected property rules in correct order.
* Source/WebCore/style/RuleSetBuilder.h:
* Source/WebCore/style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyProperty):
* Source/WebCore/style/StyleResolver.h:
(WebCore::Style::Resolver::rootDefaultStyle const):
* Source/WebCore/style/StyleScope.cpp:
(WebCore::Style::Scope::Scope):
(WebCore::Style::Scope::clearResolver):
(WebCore::Style::Scope::updateResolver):
* Source/WebCore/style/StyleScope.h:
(WebCore::Style::Scope::customPropertyRegistry const):
(WebCore::Style::Scope::customPropertyRegistry):
Style::Scope owns the registry.
Canonical link: https://commits.webkit.org/258106@main
More information about the webkit-changes
mailing list