#ifndef CSSStyleSheetResource_h
#define CSSStyleSheetResource_h
-#include "core/fetch/Resource.h"
+#include "core/fetch/ResourcePtr.h"
+#include "core/fetch/StyleSheetResource.h"
+#include "platform/heap/Handle.h"
-namespace WebCore {
+namespace blink {
+class CSSParserContext;
class ResourceClient;
class StyleSheetContents;
-class TextResourceDecoder;
-struct CSSParserContext;
-class CSSStyleSheetResource : public Resource {
+class CSSStyleSheetResource final : public StyleSheetResource {
public:
CSSStyleSheetResource(const ResourceRequest&, const String& charset);
virtual ~CSSStyleSheetResource();
+ virtual void trace(Visitor*) override;
const String sheetText(bool enforceMIMEType = true, bool* hasValidMIMEType = 0) const;
- virtual void didAddClient(ResourceClient*);
- virtual void setEncoding(const String&);
- virtual String encoding() const;
- virtual void destroyDecodedData() OVERRIDE;
+ virtual void didAddClient(ResourceClient*) override;
- PassRefPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
- void saveParsedStyleSheet(PassRefPtr<StyleSheetContents>);
+ PassRefPtrWillBeRawPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
+ void saveParsedStyleSheet(PassRefPtrWillBeRawPtr<StyleSheetContents>);
+
+protected:
+ virtual bool isSafeToUnlock() const override;
+ virtual void destroyDecodedDataIfPossible() override;
private:
bool canUseSheet(bool enforceMIMEType, bool* hasValidMIMEType) const;
+ virtual void dispose() override;
+ virtual void checkNotify() override;
-protected:
- virtual void checkNotify();
-
- RefPtr<TextResourceDecoder> m_decoder;
String m_decodedSheetText;
- RefPtr<StyleSheetContents> m_parsedStyleSheetCache;
+ RefPtrWillBeMember<StyleSheetContents> m_parsedStyleSheetCache;
};
+DEFINE_RESOURCE_TYPE_CASTS(CSSStyleSheet);
+
}
#endif