summaryrefslogtreecommitdiffstats
path: root/WebCore/css/CSSParser.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/css/CSSParser.h')
-rw-r--r--WebCore/css/CSSParser.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/WebCore/css/CSSParser.h b/WebCore/css/CSSParser.h
index 47f0bed..f8b24df 100644
--- a/WebCore/css/CSSParser.h
+++ b/WebCore/css/CSSParser.h
@@ -25,6 +25,7 @@
#include "Color.h"
#include "CSSParserValues.h"
+#include "CSSPropertySourceData.h"
#include "CSSSelectorList.h"
#include "MediaQuery.h"
#include <wtf/HashMap.h>
@@ -55,18 +56,16 @@ namespace WebCore {
class CSSParser {
public:
- typedef HashMap<CSSStyleRule*, std::pair<unsigned, unsigned> > StyleRuleRanges;
-
CSSParser(bool strictParsing = true);
~CSSParser();
- void parseSheet(CSSStyleSheet*, const String&, int startLineNumber = 0, StyleRuleRanges* ruleRangeMap = 0);
+ void parseSheet(CSSStyleSheet*, const String&, int startLineNumber = 0, StyleRuleRangeMap* ruleRangeMap = 0);
PassRefPtr<CSSRule> parseRule(CSSStyleSheet*, const String&);
PassRefPtr<CSSRule> parseKeyframeRule(CSSStyleSheet*, const String&);
bool parseValue(CSSMutableStyleDeclaration*, int propId, const String&, bool important);
static bool parseColor(RGBA32& color, const String&, bool strict = false);
bool parseColor(CSSMutableStyleDeclaration*, const String&);
- bool parseDeclaration(CSSMutableStyleDeclaration*, const String&);
+ bool parseDeclaration(CSSMutableStyleDeclaration*, const String&, CSSStyleSourceData* styleSourceData = 0);
bool parseMediaQuery(MediaList*, const String&);
Document* document() const;
@@ -244,10 +243,16 @@ namespace WebCore {
// tokenizer methods and data
unsigned m_ruleBodyStartOffset;
unsigned m_ruleBodyEndOffset;
- StyleRuleRanges* m_ruleRanges;
+ unsigned m_propertyStartOffset;
+ unsigned m_propertyEndOffset;
+ StyleRuleRangeMap* m_ruleRangeMap;
+ RefPtr<CSSStyleSourceData> m_currentStyleData;
void markRuleBodyStart();
void markRuleBodyEnd();
+ void markPropertyStart();
+ void markPropertyEnd(bool isImportantFound, bool isPropertyParsed);
void resetRuleBodyMarks() { m_ruleBodyStartOffset = m_ruleBodyEndOffset = 0; }
+ void resetPropertyMarks() { m_propertyStartOffset = m_propertyEndOffset = UINT_MAX; }
int lex(void* yylval);
int token() { return yyTok; }
UChar* text(int* length);