Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / fetch / CSSStyleSheetResource.h
index 3ecf34b..2f4a483 100644 (file)
 #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