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

Unified Diff: third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp

Issue 1883983003: Remove CSSParserValues (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 side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index 22d5adcc221243981b09d605660f22c3995937f5..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/core/css/parser/CSSParserValues.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "core/css/parser/CSSParserValues.h"
-
-#include "core/css/CSSFunctionValue.h"
-#include "core/css/parser/CSSParserToken.h"
-#include "core/css/parser/CSSParserTokenRange.h"
-#include "core/css/parser/CSSPropertyParser.h"
-#include "core/html/parser/HTMLParserIdioms.h"
-
-namespace blink {
-
-using namespace WTF;
-
-CSSParserValueList::CSSParserValueList(CSSParserTokenRange range)
-: m_current(0)
-{
- Vector<CSSParserValueList*> stack;
- Vector<int> bracketCounts;
- stack.append(this);
- bracketCounts.append(0);
- while (!range.atEnd()) {
- ASSERT(stack.size() == bracketCounts.size());
- ASSERT(!stack.isEmpty());
- const CSSParserToken& token = range.peek();
- if (token.type() != FunctionToken)
- range.consume();
- CSSParserValue value;
- switch (token.type()) {
- case FunctionToken: {
- if (token.valueEqualsIgnoringASCIICase("url")) {
- range.consume();
- const CSSParserToken& next = range.consumeIncludingWhitespace();
- if (next.type() == BadStringToken || range.consume().type() != RightParenthesisToken) {
- destroyAndClear();
- return;
- }
- ASSERT(next.type() == StringToken);
- value.id = CSSValueInvalid;
- value.isInt = false;
- value.m_unit = CSSParserValue::URI;
- value.string = next.value();
- break;
- }
- if (token.valueEqualsIgnoringASCIICase("var")) {
- destroyAndClear();
- return;
- }
-
- value.id = CSSValueInvalid;
- value.isInt = false;
-
- CSSValueID id = token.functionId();
- if (id == CSSValueCalc || id == CSSValueWebkitCalc) {
- value.m_unit = CSSParserValue::CalcFunction;
- value.calcFunction = new CSSParserCalcFunction(range.consumeBlock());
- break;
- }
- range.consume();
- value.m_unit = CSSParserValue::Function;
- CSSParserFunction* function = new CSSParserFunction;
- function->id = id;
- CSSParserValueList* list = new CSSParserValueList;
- function->args = adoptPtr(list);
-
- value.function = function;
-
- stack.last()->addValue(value);
- stack.append(list);
- bracketCounts.append(0);
- continue;
- }
- case LeftParenthesisToken: {
- CSSParserValueList* list = new CSSParserValueList;
- value.setFromValueList(adoptPtr(list));
- stack.last()->addValue(value);
- stack.append(list);
- bracketCounts.append(0);
- continue;
- }
- case RightParenthesisToken: {
- if (bracketCounts.last() == 0) {
- stack.removeLast();
- bracketCounts.removeLast();
- if (bracketCounts.isEmpty()) {
- destroyAndClear();
- return;
- }
- continue;
- }
- bracketCounts.last()--;
- value.setFromOperator(')');
- break;
- }
- case IdentToken: {
- value.id = token.id();
- value.isInt = false;
- value.m_unit = CSSParserValue::Identifier;
- value.string = token.value();
- break;
- }
- case DimensionToken:
- if (token.unitType() == CSSPrimitiveValue::UnitType::Unknown) {
- // Unknown dimensions are handled as a list of two values
- value.m_unit = CSSParserValue::DimensionList;
- CSSParserValueList* list = new CSSParserValueList;
- value.valueList = list;
- value.id = CSSValueInvalid;
-
- CSSParserValue number;
- number.setFromNumber(token.numericValue(), CSSPrimitiveValue::UnitType::Number);
- number.isInt = (token.numericValueType() == IntegerValueType);
- list->addValue(number);
-
- CSSParserValue unit;
- unit.string = token.value();
- unit.m_unit = CSSParserValue::Identifier;
- list->addValue(unit);
-
- break;
- }
- // fallthrough
- case NumberToken:
- case PercentageToken:
- value.setFromNumber(token.numericValue(), token.unitType());
- value.isInt = (token.numericValueType() == IntegerValueType);
- break;
- case UnicodeRangeToken: {
- value.id = CSSValueInvalid;
- value.isInt = false;
- value.m_unicodeRange.start = token.unicodeRangeStart();
- value.m_unicodeRange.end = token.unicodeRangeEnd();
- value.m_unit = CSSParserValue::UnicodeRange;
- break;
- }
- case HashToken:
- case StringToken:
- case UrlToken: {
- value.id = CSSValueInvalid;
- value.isInt = false;
- if (token.type() == HashToken)
- value.m_unit = CSSParserValue::HexColor;
- else if (token.type() == StringToken)
- value.m_unit = CSSParserValue::String;
- else
- value.m_unit = CSSParserValue::URI;
- value.string = token.value();
- break;
- }
- case DelimiterToken:
- value.setFromOperator(token.delimiter());
- break;
- case CommaToken:
- value.setFromOperator(',');
- break;
- case LeftBracketToken:
- value.setFromOperator('[');
- break;
- case RightBracketToken:
- value.setFromOperator(']');
- break;
- case LeftBraceToken:
- value.setFromOperator('{');
- break;
- case RightBraceToken:
- value.setFromOperator('}');
- break;
- case WhitespaceToken:
- continue;
- case CommentToken:
- case EOFToken:
- ASSERT_NOT_REACHED();
- case CDOToken:
- case CDCToken:
- case AtKeywordToken:
- case IncludeMatchToken:
- case DashMatchToken:
- case PrefixMatchToken:
- case SuffixMatchToken:
- case SubstringMatchToken:
- case ColumnToken:
- case ColonToken:
- case SemicolonToken:
- destroyAndClear();
- return;
- case BadStringToken:
- case BadUrlToken:
- destroyAndClear();
- return;
- }
- stack.last()->addValue(value);
- }
-
- CSSParserValue rightParenthesis;
- rightParenthesis.setFromOperator(')');
- while (!stack.isEmpty()) {
- while (bracketCounts.last() > 0) {
- bracketCounts.last()--;
- stack.last()->addValue(rightParenthesis);
- }
- stack.removeLast();
- bracketCounts.removeLast();
- }
-}
-
-static void destroy(Vector<CSSParserValue, 4>& values)
-{
- size_t numValues = values.size();
- for (size_t i = 0; i < numValues; i++) {
- if (values[i].m_unit == CSSParserValue::Function)
- delete values[i].function;
- else if (values[i].m_unit == CSSParserValue::CalcFunction)
- delete values[i].calcFunction;
- else if (values[i].m_unit == CSSParserValue::ValueList
- || values[i].m_unit == CSSParserValue::DimensionList)
- delete values[i].valueList;
- }
-}
-
-void CSSParserValueList::destroyAndClear()
-{
- destroy(m_values);
- clearAndLeakValues();
-}
-
-CSSParserValueList::~CSSParserValueList()
-{
- destroy(m_values);
-}
-
-void CSSParserValueList::addValue(const CSSParserValue& v)
-{
- m_values.append(v);
-}
-
-} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698