CSSDeferredParser.h [plain text]
#pragma once
#include "CSSParserContext.h"
#include <wtf/RefCounted.h>
#include <wtf/WeakPtr.h>
namespace WebCore {
class CSSParserTokenRange;
class ImmutableStyleProperties;
class StyleRuleKeyframes;
class StyleRuleBase;
class StyleSheetContents;
class CSSDeferredParser : public RefCounted<CSSDeferredParser> {
public:
static Ref<CSSDeferredParser> create(const CSSParserContext& parserContext, const String& sheetText, StyleSheetContents& styleSheet)
{
return adoptRef(*new CSSDeferredParser(parserContext, sheetText, styleSheet));
}
CSSParserMode mode() const { return m_context.mode; }
const CSSParserContext& context() const { return m_context; }
StyleSheetContents* styleSheet() const { return m_styleSheet.get(); }
Ref<ImmutableStyleProperties> parseDeclaration(const CSSParserTokenRange&);
void parseRuleList(const CSSParserTokenRange&, Vector<RefPtr<StyleRuleBase>>&);
void parseKeyframeList(const CSSParserTokenRange&, StyleRuleKeyframes&);
void adoptTokenizerEscapedStrings(Vector<String>&& strings) { m_escapedStrings = WTFMove(strings); }
private:
CSSDeferredParser(const CSSParserContext&, const String&, StyleSheetContents&);
Vector<String> m_escapedStrings;
CSSParserContext m_context;
String m_sheetText;
WeakPtr<StyleSheetContents> m_styleSheet;
};
}