diff options
Diffstat (limited to 'Source/WebCore/css/CSSParser.h')
| -rw-r--r-- | Source/WebCore/css/CSSParser.h | 32 | 
1 files changed, 26 insertions, 6 deletions
diff --git a/Source/WebCore/css/CSSParser.h b/Source/WebCore/css/CSSParser.h index 7c5a62377..b037f03a4 100644 --- a/Source/WebCore/css/CSSParser.h +++ b/Source/WebCore/css/CSSParser.h @@ -70,7 +70,7 @@ public:      ~CSSParser(); -    void parseSheet(StyleSheetContents*, const String&, int startLineNumber = 0, StyleRuleRangeMap* = 0); +    void parseSheet(StyleSheetContents*, const String&, int startLineNumber = 0, RuleSourceDataList* = 0);      PassRefPtr<StyleRuleBase> parseRule(StyleSheetContents*, const String&);      PassRefPtr<StyleKeyframe> parseKeyframeRule(StyleSheetContents*, const String&);      static bool parseValue(StylePropertySet*, CSSPropertyID, const String&, bool important, CSSParserMode, StyleSheetContents*); @@ -78,7 +78,7 @@ public:      static bool parseSystemColor(RGBA32& color, const String&, Document*);      static PassRefPtr<CSSValueList> parseFontFaceValue(const AtomicString&);      PassRefPtr<CSSPrimitiveValue> parseValidPrimitive(int ident, CSSParserValue*); -    bool parseDeclaration(StylePropertySet*, const String&, RefPtr<CSSStyleSourceData>*, StyleSheetContents* contextStyleSheet); +    bool parseDeclaration(StylePropertySet*, const String&, PassRefPtr<CSSStyleSourceData>, StyleSheetContents* contextStyleSheet);      PassOwnPtr<MediaQuery> parseMediaQuery(const String&);      void addProperty(CSSPropertyID, PassRefPtr<CSSValue>, bool important, bool implicit = false); @@ -91,6 +91,10 @@ public:      bool parseContent(CSSPropertyID, bool important);      bool parseQuotes(CSSPropertyID, bool important); +#if ENABLE(CSS_VARIABLES) +    void storeVariableDeclaration(const CSSParserString&, PassOwnPtr<CSSParserValueList>, bool important); +#endif +      PassRefPtr<CSSValue> parseAttr(CSSParserValueList* args);      PassRefPtr<CSSValue> parseBackgroundColor(); @@ -195,6 +199,10 @@ public:      bool parseCrossfade(CSSParserValueList*, RefPtr<CSSValue>&); +#if ENABLE(CSS_IMAGE_RESOLUTION) +    PassRefPtr<CSSValue> parseImageResolution(CSSParserValueList*); +#endif +  #if ENABLE(CSS_IMAGE_SET)      PassRefPtr<CSSValue> parseImageSet(CSSParserValueList*);  #endif @@ -310,21 +318,30 @@ public:      AtomicString m_defaultNamespace;      // tokenizer methods and data +    size_t m_parsedTextPrefixLength;      bool m_inStyleRuleOrDeclaration;      SourceRange m_selectorListRange;      SourceRange m_ruleBodyRange;      SourceRange m_propertyRange; -    StyleRuleRangeMap* m_ruleRangeMap; -    RefPtr<CSSRuleSourceData> m_currentRuleData; +    OwnPtr<RuleSourceDataList> m_currentRuleDataStack; +    RuleSourceDataList* m_ruleSourceDataResult; + +    void fixUnparsedPropertyRanges(CSSRuleSourceData*); +    void markStyleRuleHeaderStart(); +    void markRuleHeaderEnd(); +      void markSelectorListStart();      void markSelectorListEnd();      void markRuleBodyStart();      void markRuleBodyEnd();      void markPropertyStart();      void markPropertyEnd(bool isImportantFound, bool isPropertyParsed); +    void addNewRuleToSourceTree(PassRefPtr<CSSRuleSourceData>); +    PassRefPtr<CSSRuleSourceData> popRuleData();      void resetSelectorListMarks() { m_selectorListRange.start = m_selectorListRange.end = 0; }      void resetRuleBodyMarks() { m_ruleBodyRange.start = m_ruleBodyRange.end = 0; } -    void resetPropertyMarks() { m_propertyRange.start = m_propertyRange.end = UINT_MAX; } +    void resetPropertyRange() { m_propertyRange.start = m_propertyRange.end = UINT_MAX; } +    bool isExtractingSourceData() const { return !!m_currentRuleDataStack; }      int lex(void* yylval);      int token() { return m_token; } @@ -436,7 +453,10 @@ private:          FTime      = 0x0020,          FFrequency = 0x0040,          FRelative  = 0x0100, -        FNonNeg    = 0x0200 +#if ENABLE(CSS_IMAGE_RESOLUTION) +        FResolution= 0x0200, +#endif +        FNonNeg    = 0x0400      };      friend inline Units operator|(Units a, Units b)  | 
