Changeset 286972 in webkit
- Timestamp:
- Dec 13, 2021 12:38:56 PM (7 months ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-media-query-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/style/RuleSetBuilder.cpp (modified) (4 diffs)
-
Source/WebCore/style/RuleSetBuilder.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r286952 r286972 1 2021-12-13 Antti Koivisto <antti@apple.com> 2 3 [CSS Cascade Layers] Layers specified in import rules can not be reordered on media query evaluation 4 https://bugs.webkit.org/show_bug.cgi?id=234158 5 6 Reviewed by Simon Fraser. 7 8 * web-platform-tests/css/css-cascade/layer-media-query-expected.txt: 9 1 10 2021-12-13 Sergio Villar Senin <svillar@igalia.com> 2 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/layer-media-query-expected.txt
r286647 r286972 8 8 PASS C2 Reordering 9 9 PASS C3 Reordering 10 FAIL C4 Reordering assert_equals: C4 Reordering expected "rgb(0, 128, 0)" but got "rgb(255, 0, 0)" 10 PASS C4 Reordering 11 11 -
trunk/Source/WebCore/ChangeLog
r286971 r286972 1 2021-12-13 Antti Koivisto <antti@apple.com> 2 3 [CSS Cascade Layers] Layers specified in import rules can not be reordered on media query evaluation 4 https://bugs.webkit.org/show_bug.cgi?id=234158 5 6 Reviewed by Simon Fraser. 7 8 * style/RuleSetBuilder.cpp: 9 (WebCore::Style::RuleSetBuilder::addChildRules): 10 (WebCore::Style::RuleSetBuilder::addRulesFromSheetContents): 11 12 @import rules can introduce new layers so need to alse be considered for reordering by media queries 13 (which requires static evaluation). 14 15 (WebCore::Style::RuleSetBuilder::disallowDynamicMediaQueryEvaluationIfNeeded): 16 17 Factor into a function. 18 19 * style/RuleSetBuilder.h: 20 1 21 2021-12-13 Chris Dumez <cdumez@apple.com> 2 22 -
trunk/Source/WebCore/style/RuleSetBuilder.cpp
r285622 r286972 111 111 } 112 112 if (is<StyleRuleLayer>(*rule)) { 113 if (!m_ruleSet && !m_mediaQueryCollector.dynamicContextStack.isEmpty()) 114 requiresStaticMediaQueryEvaluation = true; 113 disallowDynamicMediaQueryEvaluationIfNeeded(); 115 114 116 115 auto& layerRule = downcast<StyleRuleLayer>(*rule); … … 127 126 } 128 127 if (is<StyleRuleFontFace>(*rule) || is<StyleRuleFontPaletteValues>(*rule) || is<StyleRuleKeyframes>(*rule)) { 129 if (!m_ruleSet && !m_mediaQueryCollector.dynamicContextStack.isEmpty()) 130 requiresStaticMediaQueryEvaluation = true; 128 disallowDynamicMediaQueryEvaluationIfNeeded(); 131 129 132 130 if (m_resolver) … … 152 150 if (m_mediaQueryCollector.pushAndEvaluate(rule->mediaQueries())) { 153 151 auto& cascadeLayerName = rule->cascadeLayerName(); 154 if (cascadeLayerName) 152 if (cascadeLayerName) { 153 disallowDynamicMediaQueryEvaluationIfNeeded(); 155 154 pushCascadeLayer(*cascadeLayerName); 155 } 156 156 157 157 addRulesFromSheetContents(*rule->styleSheet()); … … 180 180 ++selectorListIndex; 181 181 } 182 } 183 184 void RuleSetBuilder::disallowDynamicMediaQueryEvaluationIfNeeded() 185 { 186 bool isScanningForDynamicEvaluation = !m_ruleSet; 187 if (isScanningForDynamicEvaluation && !m_mediaQueryCollector.dynamicContextStack.isEmpty()) 188 requiresStaticMediaQueryEvaluation = true; 182 189 } 183 190 -
trunk/Source/WebCore/style/RuleSetBuilder.h
r284859 r286972 41 41 void addChildRules(const Vector<RefPtr<StyleRuleBase>>&); 42 42 void addStyleRule(const StyleRule&); 43 void disallowDynamicMediaQueryEvaluationIfNeeded(); 43 44 44 45 void registerLayers(const Vector<CascadeLayerName>&);
Note: See TracChangeset
for help on using the changeset viewer.