| Index: third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp b/third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp
|
| index 8d14dc09e6e88d27dc2eed7805dfb801910f1791..160a254da6f1e0c886992bff7373de631f76b0dd 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp
|
| @@ -22,11 +22,9 @@
|
| #include "core/css/parser/CSSParserValues.h"
|
|
|
| #include "core/css/CSSFunctionValue.h"
|
| -#include "core/css/CSSVariableData.h"
|
| #include "core/css/parser/CSSParserToken.h"
|
| #include "core/css/parser/CSSParserTokenRange.h"
|
| #include "core/css/parser/CSSPropertyParser.h"
|
| -#include "core/css/parser/CSSVariableParser.h"
|
| #include "core/html/parser/HTMLParserIdioms.h"
|
|
|
| namespace blink {
|
| @@ -36,8 +34,6 @@ using namespace WTF;
|
| CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
|
| : m_current(0)
|
| {
|
| - CSSParserTokenRange originalRangeForVariables = range;
|
| -
|
| Vector<CSSParserValueList*> stack;
|
| Vector<int> bracketCounts;
|
| stack.append(this);
|
| @@ -55,7 +51,7 @@ CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
|
| range.consume();
|
| const CSSParserToken& next = range.consumeIncludingWhitespace();
|
| if (next.type() == BadStringToken || range.consume().type() != RightParenthesisToken) {
|
| - checkForVariableReferencesOrDestroyAndClear(originalRangeForVariables);
|
| + destroyAndClear();
|
| return;
|
| }
|
| ASSERT(next.type() == StringToken);
|
| @@ -64,9 +60,6 @@ CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
|
| value.m_unit = CSSParserValue::URI;
|
| value.string = next.value();
|
| break;
|
| - } else if (token.valueEqualsIgnoringCase("var")) {
|
| - checkForVariableReferencesOrDestroyAndClear(originalRangeForVariables);
|
| - return;
|
| }
|
|
|
| value.id = CSSValueInvalid;
|
| @@ -105,7 +98,7 @@ CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
|
| stack.removeLast();
|
| bracketCounts.removeLast();
|
| if (bracketCounts.isEmpty()) {
|
| - checkForVariableReferencesOrDestroyAndClear(originalRangeForVariables);
|
| + destroyAndClear();
|
| return;
|
| }
|
| continue;
|
| @@ -209,12 +202,10 @@ CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
|
| case SuffixMatchToken:
|
| case SubstringMatchToken:
|
| case ColumnToken:
|
| - case ColonToken:
|
| - case SemicolonToken:
|
| - checkForVariableReferencesOrDestroyAndClear(originalRangeForVariables);
|
| - return;
|
| case BadStringToken:
|
| case BadUrlToken:
|
| + case ColonToken:
|
| + case SemicolonToken:
|
| destroyAndClear();
|
| return;
|
| }
|
| @@ -244,30 +235,9 @@ static void destroy(Vector<CSSParserValue, 4>& values)
|
| else if (values[i].m_unit == CSSParserValue::ValueList
|
| || values[i].m_unit == CSSParserValue::DimensionList)
|
| delete values[i].valueList;
|
| - else if (values[i].id == CSSValueInternalVariableValue)
|
| - values[i].variableData->deref();
|
| }
|
| }
|
|
|
| -void CSSParserValueList::checkForVariableReferencesOrDestroyAndClear(const CSSParserTokenRange& originalRange)
|
| -{
|
| - // We have to clear any state that may have been previously loaded
|
| - destroyAndClear();
|
| - if (RuntimeEnabledFeatures::cssVariablesEnabled() && CSSVariableParser::containsValidVariableReferences(originalRange))
|
| - consumeVariableValue(originalRange);
|
| -}
|
| -
|
| -void CSSParserValueList::consumeVariableValue(const CSSParserTokenRange& originalRange)
|
| -{
|
| - ASSERT(m_values.isEmpty());
|
| - CSSParserValue variableValue;
|
| - variableValue.id = CSSValueInternalVariableValue;
|
| - variableValue.isInt = false;
|
| - variableValue.variableData = CSSVariableData::create(originalRange).leakRef();
|
| - addValue(variableValue);
|
| -}
|
| -
|
| -
|
| void CSSParserValueList::destroyAndClear()
|
| {
|
| destroy(m_values);
|
|
|