CachedCSSStyleSheet.h [plain text]
#ifndef CachedCSSStyleSheet_h
#define CachedCSSStyleSheet_h
#include "CachedResource.h"
#include <wtf/Vector.h>
namespace WebCore {
class CachedResourceClient;
class StyleSheetContents;
class TextResourceDecoder;
struct CSSParserContext;
class CachedCSSStyleSheet FINAL : public CachedResource {
public:
CachedCSSStyleSheet(const ResourceRequest&, const String& charset);
virtual ~CachedCSSStyleSheet();
const String sheetText(bool enforceMIMEType = true, bool* hasValidMIMEType = 0) const;
PassRefPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
void saveParsedStyleSheet(PassRefPtr<StyleSheetContents>);
private:
bool canUseSheet(bool enforceMIMEType, bool* hasValidMIMEType) const;
virtual PurgePriority purgePriority() const OVERRIDE { return PurgeLast; }
virtual bool mayTryReplaceEncodedData() const OVERRIDE { return true; }
virtual void didAddClient(CachedResourceClient*) OVERRIDE;
virtual void setEncoding(const String&) OVERRIDE;
virtual String encoding() const OVERRIDE;
virtual void finishLoading(ResourceBuffer*) OVERRIDE;
virtual void destroyDecodedData() OVERRIDE;
protected:
virtual void checkNotify();
RefPtr<TextResourceDecoder> m_decoder;
String m_decodedSheetText;
RefPtr<StyleSheetContents> m_parsedStyleSheetCache;
};
}
#endif