| Index: third_party/WebKit/Source/core/css/parser/CSSParserImpl.h
|
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSParserImpl.h b/third_party/WebKit/Source/core/css/parser/CSSParserImpl.h
|
| index 219ab0dd541d54ac6655d770199319d75627f2f3..378ec9c8fc290248612408fb2632de04a2973a0a 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSParserImpl.h
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSParserImpl.h
|
| @@ -10,6 +10,7 @@
|
| #include "core/css/CSSPropertySourceData.h"
|
| #include "core/css/StylePropertySet.h"
|
| #include "core/css/parser/CSSParserTokenRange.h"
|
| +#include "core/css/parser/CSSParserTokenStream.h"
|
| #include "platform/heap/Handle.h"
|
| #include "wtf/Vector.h"
|
| #include "wtf/text/WTFString.h"
|
| @@ -20,7 +21,6 @@ namespace blink {
|
| class CSSLazyParsingState;
|
| class CSSParserContext;
|
| class CSSParserObserver;
|
| -class CSSParserObserverWrapper;
|
| class StyleRule;
|
| class StyleRuleBase;
|
| class StyleRuleCharset;
|
| @@ -88,6 +88,10 @@ class CSSParserImpl {
|
| StyleSheetContents*);
|
|
|
| static ImmutableStylePropertySet* parseCustomPropertySet(CSSParserTokenRange);
|
| + // This will be removed when crbug.com/661854 is fixed. We need to use a
|
| + // stream for parsing @apply blocks so we can correctly store custom
|
| + // property values.
|
| + void consumeDeclarationListForAtApply(CSSParserTokenRange);
|
|
|
| static std::unique_ptr<Vector<double>> parseKeyframeKeyList(const String&);
|
|
|
| @@ -102,7 +106,8 @@ class CSSParserImpl {
|
| CSSParserObserver&);
|
|
|
| static StylePropertySet* parseDeclarationListForLazyStyle(
|
| - CSSParserTokenRange block,
|
| + const String&,
|
| + size_t startOffset,
|
| const CSSParserContext&);
|
|
|
| private:
|
| @@ -110,38 +115,55 @@ class CSSParserImpl {
|
|
|
| // Returns whether the first encountered rule was valid
|
| template <typename T>
|
| - bool consumeRuleList(CSSParserTokenRange, RuleListType, T callback);
|
| + bool consumeRuleList(CSSParserTokenStream&, RuleListType, T callback);
|
|
|
| - // These two functions update the range they're given
|
| - StyleRuleBase* consumeAtRule(CSSParserTokenRange&, AllowedRulesType);
|
| - StyleRuleBase* consumeQualifiedRule(CSSParserTokenRange&, AllowedRulesType);
|
| + StyleRuleBase* consumeAtRule(CSSParserTokenStream&, AllowedRulesType);
|
| + // The start offset is needed when we use a CSSParserObserver
|
| + StyleRuleBase* consumeQualifiedRule(CSSParserTokenStream&,
|
| + AllowedRulesType,
|
| + size_t startOffset = 0);
|
|
|
| static StyleRuleCharset* consumeCharsetRule(CSSParserTokenRange prelude);
|
| - StyleRuleImport* consumeImportRule(CSSParserTokenRange prelude);
|
| + StyleRuleImport* consumeImportRule(CSSParserTokenRange prelude,
|
| + size_t startOffset,
|
| + size_t endOffset);
|
| StyleRuleNamespace* consumeNamespaceRule(CSSParserTokenRange prelude);
|
| + // The prelude runs from preludeStartOffset to block.offset() - 1
|
| StyleRuleMedia* consumeMediaRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| StyleRuleSupports* consumeSupportsRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| StyleRuleViewport* consumeViewportRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| StyleRuleFontFace* consumeFontFaceRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| StyleRuleKeyframes* consumeKeyframesRule(bool webkitPrefixed,
|
| CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| StyleRulePage* consumePageRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| // Updates m_parsedProperties
|
| void consumeApplyRule(CSSParserTokenRange prelude);
|
|
|
| StyleRuleKeyframe* consumeKeyframeStyleRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| - StyleRule* consumeStyleRule(CSSParserTokenRange prelude,
|
| - CSSParserTokenRange block);
|
| -
|
| - void consumeDeclarationList(CSSParserTokenRange, StyleRule::RuleType);
|
| - void consumeDeclaration(CSSParserTokenRange, StyleRule::RuleType);
|
| + CSSParserTokenStream& block,
|
| + size_t preludeStartOffset);
|
| + StyleRule* consumeStyleRule(CSSParserTokenStream&, size_t startOffset);
|
| +
|
| + void consumeDeclarationList(CSSParserTokenStream&, StyleRule::RuleType);
|
| + void consumeDeclaration(CSSParserTokenStream&,
|
| + StyleRule::RuleType,
|
| + size_t declarationStartOffset);
|
| + void consumeDeclaration(CSSParserTokenRange,
|
| + StyleRule::RuleType,
|
| + size_t declarationStartOffset,
|
| + size_t declarationEndOffset);
|
| void consumeDeclarationValue(CSSParserTokenRange,
|
| CSSPropertyID,
|
| bool important,
|
| @@ -161,10 +183,9 @@ class CSSParserImpl {
|
|
|
| Member<StyleSheetContents> m_styleSheet;
|
|
|
| - // For the inspector
|
| - CSSParserObserverWrapper* m_observerWrapper;
|
| -
|
| Member<CSSLazyParsingState> m_lazyState;
|
| +
|
| + CSSParserObserver* m_observer = nullptr;
|
| };
|
|
|
| } // namespace blink
|
|
|