Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Side by Side Diff: third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp

Issue 1858753003: Remove RawPtr from core/css (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/css/resolver/CSSVariableResolver.h" 5 #include "core/css/resolver/CSSVariableResolver.h"
6 6
7 #include "core/CSSPropertyNames.h" 7 #include "core/CSSPropertyNames.h"
8 #include "core/CSSValueKeywords.h" 8 #include "core/CSSValueKeywords.h"
9 #include "core/StyleBuilderFunctions.h" 9 #include "core/StyleBuilderFunctions.h"
10 #include "core/StylePropertyShorthand.h" 10 #include "core/StylePropertyShorthand.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } else if (range.peek().type() == AtKeywordToken && range.peek().valueEq ualsIgnoringASCIICase("apply") 123 } else if (range.peek().type() == AtKeywordToken && range.peek().valueEq ualsIgnoringASCIICase("apply")
124 && RuntimeEnabledFeatures::cssApplyAtRulesEnabled()) { 124 && RuntimeEnabledFeatures::cssApplyAtRulesEnabled()) {
125 resolveApplyAtRule(range, result); 125 resolveApplyAtRule(range, result);
126 } else { 126 } else {
127 result.append(range.consume()); 127 result.append(range.consume());
128 } 128 }
129 } 129 }
130 return success; 130 return success;
131 } 131 }
132 132
133 RawPtr<CSSValue> CSSVariableResolver::resolveVariableReferences(StyleVariableDat a* styleVariableData, CSSPropertyID id, const CSSVariableReferenceValue& value) 133 CSSValue* CSSVariableResolver::resolveVariableReferences(StyleVariableData* styl eVariableData, CSSPropertyID id, const CSSVariableReferenceValue& value)
134 { 134 {
135 ASSERT(!isShorthandProperty(id)); 135 ASSERT(!isShorthandProperty(id));
136 136
137 CSSVariableResolver resolver(styleVariableData); 137 CSSVariableResolver resolver(styleVariableData);
138 Vector<CSSParserToken> tokens; 138 Vector<CSSParserToken> tokens;
139 if (!resolver.resolveTokenRange(value.variableDataValue()->tokens(), tokens) ) 139 if (!resolver.resolveTokenRange(value.variableDataValue()->tokens(), tokens) )
140 return cssValuePool().createUnsetValue(); 140 return cssValuePool().createUnsetValue();
141 RawPtr<CSSValue> result = CSSPropertyParser::parseSingleValue(id, tokens, st rictCSSParserContext()); 141 CSSValue* result = CSSPropertyParser::parseSingleValue(id, tokens, strictCSS ParserContext());
142 if (!result) 142 if (!result)
143 return cssValuePool().createUnsetValue(); 143 return cssValuePool().createUnsetValue();
144 return result.release(); 144 return result;
145 } 145 }
146 146
147 void CSSVariableResolver::resolveAndApplyVariableReferences(StyleResolverState& state, CSSPropertyID id, const CSSVariableReferenceValue& value) 147 void CSSVariableResolver::resolveAndApplyVariableReferences(StyleResolverState& state, CSSPropertyID id, const CSSVariableReferenceValue& value)
148 { 148 {
149 CSSVariableResolver resolver(state.style()->variables()); 149 CSSVariableResolver resolver(state.style()->variables());
150 150
151 Vector<CSSParserToken> tokens; 151 Vector<CSSParserToken> tokens;
152 if (resolver.resolveTokenRange(value.variableDataValue()->tokens(), tokens)) { 152 if (resolver.resolveTokenRange(value.variableDataValue()->tokens(), tokens)) {
153 CSSParserContext context(HTMLStandardMode, 0); 153 CSSParserContext context(HTMLStandardMode, 0);
154 154
155 HeapVector<CSSProperty, 256> parsedProperties; 155 HeapVector<CSSProperty, 256> parsedProperties;
156 156
157 // TODO: Non-shorthands should just call CSSPropertyParser::parseSingleV alue 157 // TODO: Non-shorthands should just call CSSPropertyParser::parseSingleV alue
158 if (CSSPropertyParser::parseValue(id, false, CSSParserTokenRange(tokens) , context, parsedProperties, StyleRule::RuleType::Style)) { 158 if (CSSPropertyParser::parseValue(id, false, CSSParserTokenRange(tokens) , context, parsedProperties, StyleRule::RuleType::Style)) {
159 unsigned parsedPropertiesCount = parsedProperties.size(); 159 unsigned parsedPropertiesCount = parsedProperties.size();
160 for (unsigned i = 0; i < parsedPropertiesCount; ++i) 160 for (unsigned i = 0; i < parsedPropertiesCount; ++i)
161 StyleBuilder::applyProperty(parsedProperties[i].id(), state, par sedProperties[i].value()); 161 StyleBuilder::applyProperty(parsedProperties[i].id(), state, par sedProperties[i].value());
162 return; 162 return;
163 } 163 }
164 } 164 }
165 165
166 RawPtr<CSSUnsetValue> unset = cssValuePool().createUnsetValue(); 166 CSSUnsetValue* unset = cssValuePool().createUnsetValue();
167 if (isShorthandProperty(id)) { 167 if (isShorthandProperty(id)) {
168 StylePropertyShorthand shorthand = shorthandForProperty(id); 168 StylePropertyShorthand shorthand = shorthandForProperty(id);
169 for (unsigned i = 0; i < shorthand.length(); i++) 169 for (unsigned i = 0; i < shorthand.length(); i++)
170 StyleBuilder::applyProperty(shorthand.properties()[i], state, unset. get()); 170 StyleBuilder::applyProperty(shorthand.properties()[i], state, unset) ;
171 return; 171 return;
172 } 172 }
173 173
174 StyleBuilder::applyProperty(id, state, unset.get()); 174 StyleBuilder::applyProperty(id, state, unset);
175 } 175 }
176 176
177 void CSSVariableResolver::resolveVariableDefinitions(StyleVariableData* variable s) 177 void CSSVariableResolver::resolveVariableDefinitions(StyleVariableData* variable s)
178 { 178 {
179 if (!variables) 179 if (!variables)
180 return; 180 return;
181 181
182 CSSVariableResolver resolver(variables); 182 CSSVariableResolver resolver(variables);
183 for (auto& variable : variables->m_data) { 183 for (auto& variable : variables->m_data) {
184 if (variable.value && variable.value->needsVariableResolution()) 184 if (variable.value && variable.value->needsVariableResolution())
185 variable.value = resolver.resolveCustomProperty(variable.key, *varia ble.value); 185 variable.value = resolver.resolveCustomProperty(variable.key, *varia ble.value);
186 } 186 }
187 } 187 }
188 188
189 CSSVariableResolver::CSSVariableResolver(StyleVariableData* styleVariableData) 189 CSSVariableResolver::CSSVariableResolver(StyleVariableData* styleVariableData)
190 : m_styleVariableData(styleVariableData) 190 : m_styleVariableData(styleVariableData)
191 { 191 {
192 } 192 }
193 193
194 } // namespace blink 194 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698