Index: Source/core/css/parser/CSSParserImpl.cpp |
diff --git a/Source/core/css/parser/CSSParserImpl.cpp b/Source/core/css/parser/CSSParserImpl.cpp |
index 9a4d6d46c96aa8dbc87d1d89e83b048e37c069a5..766d1ac9785ea2cd60ca567e197d70b2fa855e57 100644 |
--- a/Source/core/css/parser/CSSParserImpl.cpp |
+++ b/Source/core/css/parser/CSSParserImpl.cpp |
@@ -25,21 +25,21 @@ |
namespace blink { |
-CSSParserImpl::CSSParserImpl(const CSSParserContext& context, const String& string, StyleSheetContents* styleSheet) |
+CSSParserImpl::CSSParserImpl(const CSSParserContext& context, StyleSheetContents* styleSheet) |
: m_context(context) |
, m_defaultNamespace(starAtom) |
, m_styleSheet(styleSheet) |
{ |
- CSSTokenizer::tokenize(string, m_tokens); |
} |
bool CSSParserImpl::parseValue(MutableStylePropertySet* declaration, CSSPropertyID propertyID, const String& string, bool important, const CSSParserContext& context) |
{ |
- CSSParserImpl parser(context, string); |
+ CSSParserImpl parser(context); |
StyleRule::Type ruleType = StyleRule::Style; |
if (declaration->cssParserMode() == CSSViewportRuleMode) |
ruleType = StyleRule::Viewport; |
- parser.consumeDeclarationValue(CSSParserTokenRange(parser.m_tokens), propertyID, important, ruleType); |
+ CSSTokenizer::Scope scope(string); |
+ parser.consumeDeclarationValue(scope.tokenRange(), propertyID, important, ruleType); |
if (parser.m_parsedProperties.isEmpty()) |
return false; |
declaration->addParsedProperties(parser.m_parsedProperties); |
@@ -79,18 +79,20 @@ PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> CSSParserImpl::parseInlineStyl |
CSSParserContext context = CSSParserContext(document.elementSheet().contents()->parserContext(), UseCounter::getFrom(&document)); |
CSSParserMode mode = element->isHTMLElement() && !document.inQuirksMode() ? HTMLStandardMode : HTMLQuirksMode; |
context.setMode(mode); |
- CSSParserImpl parser(context, string); |
- parser.consumeDeclarationList(CSSParserTokenRange(parser.m_tokens), StyleRule::Style); |
+ CSSParserImpl parser(context); |
+ CSSTokenizer::Scope scope(string); |
+ parser.consumeDeclarationList(scope.tokenRange(), StyleRule::Style); |
return createStylePropertySet(parser.m_parsedProperties, mode); |
} |
bool CSSParserImpl::parseDeclaration(MutableStylePropertySet* declaration, const String& string, const CSSParserContext& context) |
{ |
- CSSParserImpl parser(context, string); |
+ CSSParserImpl parser(context); |
StyleRule::Type ruleType = StyleRule::Style; |
if (declaration->cssParserMode() == CSSViewportRuleMode) |
ruleType = StyleRule::Viewport; |
- parser.consumeDeclarationList(CSSParserTokenRange(parser.m_tokens), ruleType); |
+ CSSTokenizer::Scope scope(string); |
+ parser.consumeDeclarationList(scope.tokenRange(), ruleType); |
if (parser.m_parsedProperties.isEmpty()) |
return false; |
declaration->addParsedProperties(parser.m_parsedProperties); |
@@ -99,8 +101,9 @@ bool CSSParserImpl::parseDeclaration(MutableStylePropertySet* declaration, const |
PassRefPtrWillBeRawPtr<StyleRuleBase> CSSParserImpl::parseRule(const String& string, const CSSParserContext& context, AllowedRulesType allowedRules) |
{ |
- CSSParserImpl parser(context, string); |
- CSSParserTokenRange range(parser.m_tokens); |
+ CSSParserImpl parser(context); |
+ CSSTokenizer::Scope scope(string); |
+ CSSParserTokenRange range = scope.tokenRange(); |
range.consumeWhitespaceAndComments(); |
if (range.atEnd()) |
return nullptr; // Parse error, empty rule |
@@ -119,17 +122,16 @@ PassRefPtrWillBeRawPtr<StyleRuleBase> CSSParserImpl::parseRule(const String& str |
void CSSParserImpl::parseStyleSheet(const String& string, const CSSParserContext& context, StyleSheetContents* styleSheet) |
{ |
- CSSParserImpl parser(context, string, styleSheet); |
- parser.consumeRuleList(parser.m_tokens, TopLevelRuleList, [&styleSheet](PassRefPtrWillBeRawPtr<StyleRuleBase> rule) { |
+ CSSParserImpl parser(context, styleSheet); |
+ CSSTokenizer::Scope scope(string); |
+ parser.consumeRuleList(scope.tokenRange(), TopLevelRuleList, [&styleSheet](PassRefPtrWillBeRawPtr<StyleRuleBase> rule) { |
styleSheet->parserAppendRule(rule); |
}); |
} |
PassOwnPtr<Vector<double>> CSSParserImpl::parseKeyframeKeyList(const String& keyList) |
{ |
- Vector<CSSParserToken> tokens; |
- CSSTokenizer::tokenize(keyList, tokens); |
- return consumeKeyframeKeyList(tokens); |
+ return consumeKeyframeKeyList(CSSTokenizer::Scope(keyList).tokenRange()); |
} |
bool CSSParserImpl::supportsDeclaration(CSSParserTokenRange& range) |