| Index: third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp b/third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp
|
| index 58d56073356b6b316aafcb9b22c8c0153b77b757..b1e5e8152657d1d1cd75c68e0806e3058fc61905 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp
|
| @@ -51,6 +51,16 @@ bool CSSParserImpl::parseValue(MutableStylePropertySet* declaration, CSSProperty
|
| return declaration->addParsedProperties(parser.m_parsedProperties);
|
| }
|
|
|
| +bool CSSParserImpl::parseVariableValue(MutableStylePropertySet* declaration, const AtomicString& propertyName, const String& value, bool important, const CSSParserContext& context)
|
| +{
|
| + CSSParserImpl parser(context);
|
| + CSSTokenizer::Scope scope(value);
|
| + parser.consumeVariableValue(scope.tokenRange(), propertyName, important);
|
| + if (parser.m_parsedProperties.isEmpty())
|
| + return false;
|
| + return declaration->addParsedProperties(parser.m_parsedProperties);
|
| +}
|
| +
|
| static inline void filterProperties(bool important, const WillBeHeapVector<CSSProperty, 256>& input, WillBeHeapVector<CSSProperty, 256>& output, size_t& unusedEntries, BitArray<numCSSProperties>& seenProperties)
|
| {
|
| // Add properties in reverse order so that highest priority definitions are reached first. Duplicate definitions can then be ignored when found.
|
| @@ -698,7 +708,7 @@ void CSSParserImpl::consumeDeclaration(CSSParserTokenRange range, StyleRule::Typ
|
| }
|
| if (RuntimeEnabledFeatures::cssVariablesEnabled() && unresolvedProperty == CSSPropertyInvalid && CSSVariableParser::isValidVariableName(token)) {
|
| AtomicString variableName = token.value();
|
| - consumeVariableDeclarationValue(range.makeSubRange(&range.peek(), declarationValueEnd), variableName, important);
|
| + consumeVariableValue(range.makeSubRange(&range.peek(), declarationValueEnd), variableName, important);
|
| return;
|
| }
|
|
|
| @@ -721,7 +731,7 @@ void CSSParserImpl::consumeDeclaration(CSSParserTokenRange range, StyleRule::Typ
|
| consumeDeclarationValue(range.makeSubRange(&range.peek(), declarationValueEnd), unresolvedProperty, important, ruleType);
|
| }
|
|
|
| -void CSSParserImpl::consumeVariableDeclarationValue(CSSParserTokenRange range, const AtomicString& variableName, bool important)
|
| +void CSSParserImpl::consumeVariableValue(CSSParserTokenRange range, const AtomicString& variableName, bool important)
|
| {
|
| if (RefPtrWillBeRawPtr<CSSCustomPropertyDeclaration> value = CSSVariableParser::parseDeclarationValue(variableName, range))
|
| m_parsedProperties.append(CSSProperty(CSSPropertyVariable, value.release(), important));
|
|
|