Changeset 292045 in webkit
- Timestamp:
- Mar 29, 2022 11:19:56 AM (4 months ago)
- Location:
- trunk
- Files:
-
- 4 added
- 16 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/TestExpectations (modified) (1 diff)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/idlharness-expected.txt (added)
-
Source/WebCore/CMakeLists.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/DerivedSources-input.xcfilelist (modified) (1 diff)
-
Source/WebCore/DerivedSources-output.xcfilelist (modified) (1 diff)
-
Source/WebCore/DerivedSources.make (modified) (1 diff)
-
Source/WebCore/Sources.txt (modified) (2 diffs)
-
Source/WebCore/WebCore.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Source/WebCore/bindings/js/JSCSSRuleCustom.cpp (modified) (3 diffs)
-
Source/WebCore/css/CSSContainerRule.cpp (added)
-
Source/WebCore/css/CSSContainerRule.h (added)
-
Source/WebCore/css/CSSContainerRule.idl (added)
-
Source/WebCore/css/ContainerQuery.cpp (modified) (2 diffs)
-
Source/WebCore/css/ContainerQuery.h (modified) (2 diffs)
-
Source/WebCore/css/ContainerQueryParser.cpp (modified) (1 diff)
-
Source/WebCore/css/StyleRule.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r292033 r292045 1 2022-03-29 Antti Koivisto <antti@apple.com> 2 3 [CSS Container Queries] Support CSSOM 4 https://bugs.webkit.org/show_bug.cgi?id=238500 5 6 Reviewed by Simon Fraser. 7 8 * TestExpectations: 9 1 10 2022-03-29 Sam Sneddon <gsnedders@apple.com> 2 11 -
trunk/LayoutTests/TestExpectations
r292033 r292045 4707 4707 webkit.org/b/229659 imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.html [ ImageOnlyFailure ] 4708 4708 webkit.org/b/229659 imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-foreignobject-no-size-container.html [ Skip ] 4709 webkit.org/b/229659 imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-serialization.html [ Skip ]4710 webkit.org/b/229659 imported/w3c/web-platform-tests/css/css-contain/container-queries/idlharness.html [ Skip ]4711 4709 4712 4710 # Flaky css-contain test -
trunk/LayoutTests/imported/w3c/ChangeLog
r292033 r292045 1 2022-03-29 Antti Koivisto <antti@apple.com> 2 3 [CSS Container Queries] Support CSSOM 4 https://bugs.webkit.org/show_bug.cgi?id=238500 5 6 Reviewed by Simon Fraser. 7 8 * web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt: 9 * web-platform-tests/css/css-contain/container-queries/idlharness-expected.txt: 10 1 11 2022-03-29 Sam Sneddon <gsnedders@apple.com> 2 12 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt
r291993 r292045 1 1 2 FAIL Serialization of conditionText null is not an object (evaluating 'rules[0].cssRules') 3 FAIL Serialization of inner @container rule null is not an object (evaluating 'rules[0].cssRules') 4 FAIL Serialization of nested @container rule null is not an object (evaluating 'rules[0].cssText') 2 PASS Serialization of conditionText 3 PASS Serialization of inner @container rule 4 PASS Serialization of nested @container rule 5 5 -
trunk/Source/WebCore/CMakeLists.txt
r291867 r292045 764 764 765 765 css/CSSConditionRule.idl 766 css/CSSContainerRule.idl 766 767 css/CSSCounterStyleRule.idl 767 768 css/CSSFontFaceRule.idl -
trunk/Source/WebCore/ChangeLog
r292043 r292045 1 2022-03-29 Antti Koivisto <antti@apple.com> 2 3 [CSS Container Queries] Support CSSOM 4 https://bugs.webkit.org/show_bug.cgi?id=238500 5 6 Reviewed by Simon Fraser. 7 8 Add CSSContainerRule interface. 9 10 https://drafts.csswg.org/css-contain-3/#the-csscontainerrule-interface 11 12 * DerivedSources-input.xcfilelist: 13 * DerivedSources-output.xcfilelist: 14 * DerivedSources.make: 15 * Sources.txt: 16 * WebCore.xcodeproj/project.pbxproj: 17 * bindings/js/JSCSSRuleCustom.cpp: 18 (WebCore::toJSNewlyCreated): 19 * css/CSSContainerRule.cpp: Added. 20 (WebCore::CSSContainerRule::CSSContainerRule): 21 (WebCore::CSSContainerRule::create): 22 (WebCore::CSSContainerRule::styleRuleContainer const): 23 (WebCore::CSSContainerRule::cssText const): 24 (WebCore::CSSContainerRule::conditionText const): 25 26 Implementation, the only real functionality is serialization. 27 28 * css/CSSContainerRule.h: Added. 29 * css/CSSContainerRule.idl: Added. 30 31 Interface. 32 33 * css/ContainerQuery.cpp: 34 (WebCore::CQ::serialize): 35 (WebCore::serialize): 36 37 Query syntax serialization support. 38 39 * css/ContainerQuery.h: 40 * css/ContainerQueryParser.cpp: 41 (WebCore::ContainerQueryParser::consumeContainerQuery): 42 43 Remember the text of unknown queries. 44 45 * css/StyleRule.cpp: 46 (WebCore::StyleRuleBase::createCSSOMWrapper const): 47 1 48 2022-03-29 Alan Bujtas <zalan@apple.com> 2 49 -
trunk/Source/WebCore/DerivedSources-input.xcfilelist
r291867 r292045 893 893 $(PROJECT_DIR)/crypto/parameters/RsaPssParams.idl 894 894 $(PROJECT_DIR)/css/CSSConditionRule.idl 895 $(PROJECT_DIR)/css/CSSContainerRule.idl 895 896 $(PROJECT_DIR)/css/CSSCounterStyleRule.idl 896 897 $(PROJECT_DIR)/css/CSSFontFaceRule.idl -
trunk/Source/WebCore/DerivedSources-output.xcfilelist
r291893 r292045 300 300 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSConditionRule.cpp 301 301 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSConditionRule.h 302 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSContainerRule.cpp 303 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSContainerRule.h 302 304 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSCounterStyleRule.cpp 303 305 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSCounterStyleRule.h -
trunk/Source/WebCore/DerivedSources.make
r291867 r292045 772 772 $(WebCore)/crypto/parameters/RsaPssParams.idl \ 773 773 $(WebCore)/css/CSSConditionRule.idl \ 774 $(WebCore)/css/CSSContainerRule.idl \ 774 775 $(WebCore)/css/CSSCounterStyleRule.idl \ 775 776 $(WebCore)/css/CSSFontFaceRule.idl \ -
trunk/Source/WebCore/Sources.txt
r291867 r292045 716 716 css/CSSComputedStyleDeclaration.cpp 717 717 css/CSSConditionRule.cpp 718 css/CSSContainerRule.cpp 718 719 css/CSSContentDistributionValue.cpp 719 720 css/CSSCounterStyleRule.cpp … … 2948 2949 JSCSSAnimation.cpp 2949 2950 JSCSSConditionRule.cpp 2951 JSCSSContainerRule.cpp 2950 2952 JSCSSCounterStyleRule.cpp 2951 2953 JSCSSFontFaceRule.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r291889 r292045 5383 5383 E46C794B1F13E82B00F371E1 /* StyleInvalidationFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A1822F1F13BE5800FEF698 /* StyleInvalidationFunctions.h */; }; 5384 5384 E47127CB163438AE00ED6F5A /* StyleInvalidator.h in Headers */ = {isa = PBXBuildFile; fileRef = E47A97CF163059FC005DCD99 /* StyleInvalidator.h */; }; 5385 E476EF4A27E07A410056AC6E /* CSSContainerRule.h in Headers */ = {isa = PBXBuildFile; fileRef = E476EF4827E07A1A0056AC6E /* CSSContainerRule.h */; }; 5385 5386 E4778B80115A581A00B5D372 /* JSCustomEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E4778B7E115A581A00B5D372 /* JSCustomEvent.h */; }; 5386 5387 E47A3AC61C5EAC9D00CCBFA7 /* StyleSharingResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = E47A3AC41C5EAC7900CCBFA7 /* StyleSharingResolver.h */; }; … … 17538 17539 E46A2B1D17CA76B1000DBCD8 /* ElementChildIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementChildIterator.h; sourceTree = "<group>"; }; 17539 17540 E46B41F81CB24E70008F11DE /* ScriptDisallowedScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDisallowedScope.h; sourceTree = "<group>"; }; 17541 E476EF4727E07A020056AC6E /* CSSContainerRule.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = CSSContainerRule.idl; sourceTree = "<group>"; }; 17542 E476EF4827E07A1A0056AC6E /* CSSContainerRule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSSContainerRule.h; sourceTree = "<group>"; }; 17543 E476EF4927E07A280056AC6E /* CSSContainerRule.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CSSContainerRule.cpp; sourceTree = "<group>"; }; 17540 17544 E4778B7D115A581A00B5D372 /* JSCustomEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomEvent.cpp; sourceTree = "<group>"; }; 17541 17545 E4778B7E115A581A00B5D372 /* JSCustomEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomEvent.h; sourceTree = "<group>"; }; … … 31785 31789 930AAC98250EB8170013DA9F /* CSSConditionRule.h */, 31786 31790 930AAC99250EB8180013DA9F /* CSSConditionRule.idl */, 31791 E476EF4927E07A280056AC6E /* CSSContainerRule.cpp */, 31792 E476EF4827E07A1A0056AC6E /* CSSContainerRule.h */, 31793 E476EF4727E07A020056AC6E /* CSSContainerRule.idl */, 31787 31794 9DAC7C521AF2CAA100437C44 /* CSSContentDistributionValue.cpp */, 31788 31795 9DAC7C531AF2CAA100437C44 /* CSSContentDistributionValue.h */, … … 34200 34207 BCEA4790097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h in Headers */, 34201 34208 930AAC9A250EB8490013DA9F /* CSSConditionRule.h in Headers */, 34209 E476EF4A27E07A410056AC6E /* CSSContainerRule.h in Headers */, 34202 34210 9DAC7C551AF2CAA200437C44 /* CSSContentDistributionValue.h in Headers */, 34203 34211 98F9D66925FDE02200BD842D /* CSSCounterStyleRule.h in Headers */, -
trunk/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp
r288200 r292045 27 27 #include "JSCSSRule.h" 28 28 29 #include "CSSContainerRule.h" 29 30 #include "CSSCounterStyleRule.h" 30 31 #include "CSSFontFaceRule.h" … … 40 41 #include "CSSStyleRule.h" 41 42 #include "CSSSupportsRule.h" 43 #include "JSCSSContainerRule.h" 42 44 #include "JSCSSCounterStyleRule.h" 43 45 #include "JSCSSFontFaceRule.h" … … 98 100 return createWrapper<CSSLayerStatementRule>(globalObject, WTFMove(rule)); 99 101 case StyleRuleType::Container: 102 return createWrapper<CSSContainerRule>(globalObject, WTFMove(rule)); 100 103 case StyleRuleType::Unknown: 101 104 case StyleRuleType::Charset: -
trunk/Source/WebCore/css/ContainerQuery.cpp
r291098 r292045 26 26 #include "ContainerQuery.h" 27 27 28 #include "CSSMarkup.h" 28 29 #include <wtf/NeverDestroyed.h> 30 #include <wtf/text/StringBuilder.h> 29 31 30 namespace WebCore ::CQ{31 32 namespace WebCore { 33 namespace CQ { 32 34 namespace FeatureNames { 33 35 … … 85 87 } 86 88 89 void serialize(StringBuilder&, const SizeQuery&); 90 void serialize(StringBuilder&, const SizeFeature&); 91 template<typename ConditionType> void serialize(StringBuilder&, const ConditionType&); 92 93 static void serialize(StringBuilder& builder, const ContainerQuery& containerQuery) 94 { 95 WTF::switchOn(containerQuery, [&](auto& node) { 96 builder.append('('); 97 serialize(builder, node); 98 builder.append(')'); 99 }, [&](const CQ::UnknownQuery& unknownQuery) { 100 builder.append(unknownQuery.name); 101 builder.append('('); 102 builder.append(unknownQuery.text); 103 builder.append(')'); 104 }); 87 105 } 88 106 107 void serialize(StringBuilder& builder, const SizeQuery& sizeQuery) 108 { 109 WTF::switchOn(sizeQuery, [&](auto& node) { 110 serialize(builder, node); 111 }); 112 } 113 114 void serialize(StringBuilder& builder, const SizeFeature& sizeFeature) 115 { 116 auto serializeComparisonOperator = [&](ComparisonOperator op) { 117 builder.append(' '); 118 switch (op) { 119 case ComparisonOperator::LessThan: 120 builder.append('<'); 121 break; 122 case ComparisonOperator::LessThanOrEqual: 123 builder.append("<="); 124 break; 125 case ComparisonOperator::Equal: 126 builder.append('='); 127 break; 128 case ComparisonOperator::GreaterThan: 129 builder.append('>'); 130 break; 131 case ComparisonOperator::GreaterThanOrEqual: 132 builder.append(">="); 133 break; 134 } 135 builder.append(' '); 136 }; 137 138 if (sizeFeature.leftComparison) { 139 builder.append(sizeFeature.leftComparison->value->cssText()); 140 serializeComparisonOperator(sizeFeature.leftComparison->op); 141 } 142 143 serializeIdentifier(sizeFeature.name, builder); 144 145 if (sizeFeature.rightComparison) { 146 serializeComparisonOperator(sizeFeature.rightComparison->op); 147 builder.append(sizeFeature.rightComparison->value->cssText()); 148 } 149 } 150 151 template<typename ConditionType> 152 void serialize(StringBuilder& builder, const ConditionType& condition) 153 { 154 if (condition.queries.size() == 1 && condition.logicalOperator == LogicalOperator::Not) { 155 builder.append("not "); 156 serialize(builder, condition.queries.first()); 157 return; 158 } 159 160 for (auto& query : condition.queries) { 161 if (&query != &condition.queries.first()) 162 builder.append(condition.logicalOperator == LogicalOperator::And ? " and " : " or "); 163 serialize(builder, query); 164 } 165 } 166 167 } 168 169 void serialize(StringBuilder& builder, const ContainerQuery& query) 170 { 171 CQ::serialize(builder, query); 172 } 173 174 } 175 -
trunk/Source/WebCore/css/ContainerQuery.h
r291474 r292045 40 40 struct SizeFeature; 41 41 42 struct UnknownQuery { }; 42 struct UnknownQuery { 43 String name; 44 String text; 45 }; 43 46 44 47 using SizeQuery = std::variant<SizeCondition, SizeFeature>; … … 98 101 using CachedQueryContainers = Vector<Ref<const Element>>; 99 102 103 void serialize(StringBuilder&, const ContainerQuery&); 104 100 105 } -
trunk/Source/WebCore/css/ContainerQueryParser.cpp
r291098 r292045 62 62 { 63 63 if (range.peek().type() == FunctionToken) { 64 range.consumeBlock(); 64 auto name = range.peek().value(); 65 auto functionRange = range.consumeBlock(); 65 66 // This is where we would support style() queries. 66 return CQ::UnknownQuery { };67 return CQ::UnknownQuery { name.toString(), functionRange.serialize() }; 67 68 } 68 69 -
trunk/Source/WebCore/css/StyleRule.cpp
r291946 r292045 23 23 #include "StyleRule.h" 24 24 25 #include "CSSContainerRule.h" 25 26 #include "CSSCounterStyleRule.h" 26 27 #include "CSSDeferredParser.h" … … 195 196 break; 196 197 case StyleRuleType::Container: 197 // FIXME: Implement CSSOM.198 rule = CSSContainerRule::create(downcast<StyleRuleContainer>(self), parentSheet); 198 199 break; 199 200 case StyleRuleType::Unknown:
Note: See TracChangeset
for help on using the changeset viewer.