Index: Source/core/css/CSSParserValues.cpp |
diff --git a/Source/core/css/CSSParserValues.cpp b/Source/core/css/CSSParserValues.cpp |
deleted file mode 100644 |
index 0b298a7db798de1454185501a238baab7bf58be7..0000000000000000000000000000000000000000 |
--- a/Source/core/css/CSSParserValues.cpp |
+++ /dev/null |
@@ -1,239 +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 "config.h" |
-#include "core/css/CSSParserValues.h" |
- |
-#include "core/css/CSSFunctionValue.h" |
-#include "core/css/CSSSelectorList.h" |
-#include "core/html/parser/HTMLParserIdioms.h" |
- |
-namespace blink { |
- |
-using namespace WTF; |
- |
-static void destroy(Vector<CSSParserValue, 4>& values) |
-{ |
- size_t numValues = values.size(); |
- for (size_t i = 0; i < numValues; i++) { |
- if (values[i].unit == CSSParserValue::Function) |
- delete values[i].function; |
- else if (values[i].unit == CSSParserValue::ValueList) |
- 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); |
-} |
- |
-void CSSParserValueList::insertValueAt(unsigned i, const CSSParserValue& v) |
-{ |
- m_values.insert(i, v); |
-} |
- |
-void CSSParserValueList::stealValues(CSSParserValueList& valueList) |
-{ |
- for (unsigned i = 0; i < valueList.size(); ++i) |
- m_values.append(*(valueList.valueAt(i))); |
- valueList.clearAndLeakValues(); |
-} |
- |
-PassRefPtrWillBeRawPtr<CSSValue> CSSParserValue::createCSSValue() |
-{ |
- if (id) |
- return CSSPrimitiveValue::createIdentifier(id); |
- |
- if (unit == CSSParserValue::Operator) |
- return CSSPrimitiveValue::createParserOperator(iValue); |
- if (unit == CSSParserValue::Function) |
- return CSSFunctionValue::create(function); |
- if (unit == CSSParserValue::ValueList) |
- return CSSValueList::createFromParserValueList(valueList); |
- if (unit >= CSSParserValue::Q_EMS) |
- return CSSPrimitiveValue::createAllowingMarginQuirk(fValue, CSSPrimitiveValue::CSS_EMS); |
- |
- CSSPrimitiveValue::UnitType primitiveUnit = static_cast<CSSPrimitiveValue::UnitType>(unit); |
- switch (primitiveUnit) { |
- case CSSPrimitiveValue::CSS_IDENT: |
- case CSSPrimitiveValue::CSS_PROPERTY_ID: |
- case CSSPrimitiveValue::CSS_VALUE_ID: |
- return CSSPrimitiveValue::create(string, CSSPrimitiveValue::CSS_PARSER_IDENTIFIER); |
- case CSSPrimitiveValue::CSS_NUMBER: |
- return CSSPrimitiveValue::create(fValue, isInt ? CSSPrimitiveValue::CSS_PARSER_INTEGER : CSSPrimitiveValue::CSS_NUMBER); |
- case CSSPrimitiveValue::CSS_STRING: |
- case CSSPrimitiveValue::CSS_URI: |
- case CSSPrimitiveValue::CSS_PARSER_HEXCOLOR: |
- return CSSPrimitiveValue::create(string, primitiveUnit); |
- case CSSPrimitiveValue::CSS_PERCENTAGE: |
- case CSSPrimitiveValue::CSS_EMS: |
- case CSSPrimitiveValue::CSS_EXS: |
- case CSSPrimitiveValue::CSS_PX: |
- case CSSPrimitiveValue::CSS_CM: |
- case CSSPrimitiveValue::CSS_MM: |
- case CSSPrimitiveValue::CSS_IN: |
- case CSSPrimitiveValue::CSS_PT: |
- case CSSPrimitiveValue::CSS_PC: |
- case CSSPrimitiveValue::CSS_DEG: |
- case CSSPrimitiveValue::CSS_RAD: |
- case CSSPrimitiveValue::CSS_GRAD: |
- case CSSPrimitiveValue::CSS_MS: |
- case CSSPrimitiveValue::CSS_S: |
- case CSSPrimitiveValue::CSS_HZ: |
- case CSSPrimitiveValue::CSS_KHZ: |
- case CSSPrimitiveValue::CSS_VW: |
- case CSSPrimitiveValue::CSS_VH: |
- case CSSPrimitiveValue::CSS_VMIN: |
- case CSSPrimitiveValue::CSS_VMAX: |
- case CSSPrimitiveValue::CSS_TURN: |
- case CSSPrimitiveValue::CSS_REMS: |
- case CSSPrimitiveValue::CSS_CHS: |
- case CSSPrimitiveValue::CSS_FR: |
- return CSSPrimitiveValue::create(fValue, primitiveUnit); |
- case CSSPrimitiveValue::CSS_UNKNOWN: |
- case CSSPrimitiveValue::CSS_DIMENSION: |
- case CSSPrimitiveValue::CSS_ATTR: |
- case CSSPrimitiveValue::CSS_COUNTER: |
- case CSSPrimitiveValue::CSS_RECT: |
- case CSSPrimitiveValue::CSS_RGBCOLOR: |
- case CSSPrimitiveValue::CSS_DPPX: |
- case CSSPrimitiveValue::CSS_DPI: |
- case CSSPrimitiveValue::CSS_DPCM: |
- case CSSPrimitiveValue::CSS_PAIR: |
- case CSSPrimitiveValue::CSS_UNICODE_RANGE: |
- case CSSPrimitiveValue::CSS_PARSER_INTEGER: |
- case CSSPrimitiveValue::CSS_PARSER_IDENTIFIER: |
- case CSSPrimitiveValue::CSS_PARSER_OPERATOR: |
- case CSSPrimitiveValue::CSS_COUNTER_NAME: |
- case CSSPrimitiveValue::CSS_SHAPE: |
- case CSSPrimitiveValue::CSS_QUAD: |
- case CSSPrimitiveValue::CSS_CALC: |
- case CSSPrimitiveValue::CSS_CALC_PERCENTAGE_WITH_NUMBER: |
- case CSSPrimitiveValue::CSS_CALC_PERCENTAGE_WITH_LENGTH: |
- return nullptr; |
- } |
- |
- ASSERT_NOT_REACHED(); |
- return nullptr; |
-} |
- |
-CSSParserSelector::CSSParserSelector() |
- : m_selector(adoptPtr(new CSSSelector())) |
-{ |
-} |
- |
-CSSParserSelector::CSSParserSelector(const QualifiedName& tagQName) |
- : m_selector(adoptPtr(new CSSSelector(tagQName))) |
-{ |
-} |
- |
-CSSParserSelector::~CSSParserSelector() |
-{ |
- if (!m_tagHistory) |
- return; |
- Vector<OwnPtr<CSSParserSelector>, 16> toDelete; |
- OwnPtr<CSSParserSelector> selector = m_tagHistory.release(); |
- while (true) { |
- OwnPtr<CSSParserSelector> next = selector->m_tagHistory.release(); |
- toDelete.append(selector.release()); |
- if (!next) |
- break; |
- selector = next.release(); |
- } |
-} |
- |
-void CSSParserSelector::adoptSelectorVector(Vector<OwnPtr<CSSParserSelector> >& selectorVector) |
-{ |
- CSSSelectorList* selectorList = new CSSSelectorList(); |
- selectorList->adoptSelectorVector(selectorVector); |
- m_selector->setSelectorList(adoptPtr(selectorList)); |
-} |
- |
-bool CSSParserSelector::isSimple() const |
-{ |
- if (m_selector->selectorList() || m_selector->matchesPseudoElement()) |
- return false; |
- |
- if (!m_tagHistory) |
- return true; |
- |
- if (m_selector->match() == CSSSelector::Tag) { |
- // We can't check against anyQName() here because namespace may not be nullAtom. |
- // Example: |
- // @namespace "http://www.w3.org/2000/svg"; |
- // svg:not(:root) { ... |
- if (m_selector->tagQName().localName() == starAtom) |
- return m_tagHistory->isSimple(); |
- } |
- |
- return false; |
-} |
- |
-void CSSParserSelector::insertTagHistory(CSSSelector::Relation before, PassOwnPtr<CSSParserSelector> selector, CSSSelector::Relation after) |
-{ |
- if (m_tagHistory) |
- selector->setTagHistory(m_tagHistory.release()); |
- setRelation(before); |
- selector->setRelation(after); |
- m_tagHistory = selector; |
-} |
- |
-void CSSParserSelector::appendTagHistory(CSSSelector::Relation relation, PassOwnPtr<CSSParserSelector> selector) |
-{ |
- CSSParserSelector* end = this; |
- while (end->tagHistory()) |
- end = end->tagHistory(); |
- end->setRelation(relation); |
- end->setTagHistory(selector); |
-} |
- |
-void CSSParserSelector::prependTagSelector(const QualifiedName& tagQName, bool tagIsForNamespaceRule) |
-{ |
- OwnPtr<CSSParserSelector> second = adoptPtr(new CSSParserSelector); |
- second->m_selector = m_selector.release(); |
- second->m_tagHistory = m_tagHistory.release(); |
- m_tagHistory = second.release(); |
- |
- m_selector = adoptPtr(new CSSSelector(tagQName, tagIsForNamespaceRule)); |
- m_selector->setRelation(CSSSelector::SubSelector); |
-} |
- |
-bool CSSParserSelector::hasHostPseudoSelector() const |
-{ |
- for (CSSParserSelector* selector = const_cast<CSSParserSelector*>(this); selector; selector = selector->tagHistory()) { |
- if (selector->pseudoType() == CSSSelector::PseudoHost || selector->pseudoType() == CSSSelector::PseudoHostContext) |
- return true; |
- } |
- return false; |
-} |
- |
-} // namespace blink |