Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / css / CSSImageValue.h
index 29f2c9d..949c571 100644 (file)
 
 #include "core/css/CSSValue.h"
 #include "core/fetch/ResourceFetcher.h"
+#include "platform/weborigin/Referrer.h"
 #include "wtf/RefPtr.h"
 
-namespace WebCore {
+namespace blink {
 
-class Element;
+class Document;
 class KURL;
 class StyleFetchedImage;
 class StyleImage;
@@ -35,13 +36,13 @@ class RenderObject;
 
 class CSSImageValue : public CSSValue {
 public:
-    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const KURL& url)
+    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const KURL& url, StyleImage* image = 0)
     {
-        return adoptRefCountedWillBeRefCountedGarbageCollected(new CSSImageValue(url));
+        return adoptRefWillBeNoop(new CSSImageValue(url, url, image));
     }
-    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const KURL& url, StyleImage* image)
+    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const String& rawValue, const KURL& url, StyleImage* image = 0)
     {
-        return adoptRefCountedWillBeRefCountedGarbageCollected(new CSSImageValue(url, image));
+        return adoptRefWillBeNoop(new CSSImageValue(rawValue, url, image));
     }
     ~CSSImageValue();
 
@@ -50,11 +51,16 @@ public:
     // Returns a StyleFetchedImage if the image is cached already, otherwise a StylePendingImage.
     StyleImage* cachedOrPendingImage();
 
-    const String& url() { return m_url; }
+    const String& url() { return m_absoluteURL; }
+
+    void setReferrer(const Referrer& referrer) { m_referrer = referrer; }
+    const Referrer& referrer() const { return m_referrer; }
+
+    void reResolveURL(const Document&);
 
     String customCSSText() const;
 
-    PassRefPtr<CSSValue> cloneForCSSOM() const;
+    PassRefPtrWillBeRawPtr<CSSValue> cloneForCSSOM() const;
 
     bool hasFailedOrCanceledSubresources() const;
 
@@ -65,12 +71,14 @@ public:
     void setInitiator(const AtomicString& name) { m_initiatorName = name; }
 
     void traceAfterDispatch(Visitor*);
+    void restoreCachedResourceIfNeeded(Document&);
 
 private:
-    explicit CSSImageValue(const KURL&);
-    CSSImageValue(const KURL&, StyleImage*);
+    CSSImageValue(const String& rawValue, const KURL&, StyleImage*);
 
-    String m_url;
+    String m_relativeURL;
+    String m_absoluteURL;
+    Referrer m_referrer;
     RefPtr<StyleImage> m_image;
     bool m_accessedImage;
     AtomicString m_initiatorName;
@@ -78,6 +86,6 @@ private:
 
 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageValue, isImageValue());
 
-} // namespace WebCore
+} // namespace blink
 
 #endif // CSSImageValue_h