OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "core/css/CSSSelectorList.h" | 25 #include "core/css/CSSSelectorList.h" |
26 #include "core/css/parser/CSSParserToken.h" | 26 #include "core/css/parser/CSSParserToken.h" |
27 #include "core/css/parser/CSSParserTokenRange.h" | 27 #include "core/css/parser/CSSParserTokenRange.h" |
28 #include "core/css/parser/CSSPropertyParser.h" | 28 #include "core/css/parser/CSSPropertyParser.h" |
29 #include "core/html/parser/HTMLParserIdioms.h" | 29 #include "core/html/parser/HTMLParserIdioms.h" |
30 | 30 |
31 namespace blink { | 31 namespace blink { |
32 | 32 |
33 using namespace WTF; | 33 using namespace WTF; |
34 | 34 |
35 CSSParserValueList::CSSParserValueList(CSSParserTokenRange range, bool& usesRemU
nits) | 35 CSSParserValueList::CSSParserValueList(CSSParserTokenRange range) |
36 : m_current(0) | 36 : m_current(0) |
37 { | 37 { |
38 usesRemUnits = false; | |
39 Vector<CSSParserValueList*> stack; | 38 Vector<CSSParserValueList*> stack; |
40 Vector<int> bracketCounts; | 39 Vector<int> bracketCounts; |
41 stack.append(this); | 40 stack.append(this); |
42 bracketCounts.append(0); | 41 bracketCounts.append(0); |
43 while (!range.atEnd()) { | 42 while (!range.atEnd()) { |
44 ASSERT(stack.size() == bracketCounts.size()); | 43 ASSERT(stack.size() == bracketCounts.size()); |
45 ASSERT(!stack.isEmpty()); | 44 ASSERT(!stack.isEmpty()); |
46 const CSSParserToken& token = range.peek(); | 45 const CSSParserToken& token = range.peek(); |
47 if (token.type() != FunctionToken) | 46 if (token.type() != FunctionToken) |
48 range.consume(); | 47 range.consume(); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 number.isInt = (token.numericValueType() == IntegerValueType); | 132 number.isInt = (token.numericValueType() == IntegerValueType); |
134 list->addValue(number); | 133 list->addValue(number); |
135 | 134 |
136 CSSParserValue unit; | 135 CSSParserValue unit; |
137 unit.string = token.value(); | 136 unit.string = token.value(); |
138 unit.m_unit = CSSParserValue::Identifier; | 137 unit.m_unit = CSSParserValue::Identifier; |
139 list->addValue(unit); | 138 list->addValue(unit); |
140 | 139 |
141 break; | 140 break; |
142 } | 141 } |
143 if (token.unitType() == CSSPrimitiveValue::UnitType::Rems) | |
144 usesRemUnits = true; | |
145 // fallthrough | 142 // fallthrough |
146 case NumberToken: | 143 case NumberToken: |
147 case PercentageToken: | 144 case PercentageToken: |
148 if (!std::isfinite(token.numericValue())) { | 145 if (!std::isfinite(token.numericValue())) { |
149 destroyAndClear(); | 146 destroyAndClear(); |
150 return; | 147 return; |
151 } | 148 } |
152 value.setFromNumber(token.numericValue(), token.unitType()); | 149 value.setFromNumber(token.numericValue(), token.unitType()); |
153 value.isInt = (token.numericValueType() == IntegerValueType); | 150 value.isInt = (token.numericValueType() == IntegerValueType); |
154 break; | 151 break; |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 bool CSSParserSelector::hasHostPseudoSelector() const | 342 bool CSSParserSelector::hasHostPseudoSelector() const |
346 { | 343 { |
347 for (CSSParserSelector* selector = const_cast<CSSParserSelector*>(this); sel
ector; selector = selector->tagHistory()) { | 344 for (CSSParserSelector* selector = const_cast<CSSParserSelector*>(this); sel
ector; selector = selector->tagHistory()) { |
348 if (selector->pseudoType() == CSSSelector::PseudoHost || selector->pseud
oType() == CSSSelector::PseudoHostContext) | 345 if (selector->pseudoType() == CSSSelector::PseudoHost || selector->pseud
oType() == CSSSelector::PseudoHostContext) |
349 return true; | 346 return true; |
350 } | 347 } |
351 return false; | 348 return false; |
352 } | 349 } |
353 | 350 |
354 } // namespace blink | 351 } // namespace blink |
OLD | NEW |