Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / css / CSSImageValue.h
index a053f96..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,8 +36,14 @@ class RenderObject;
 
 class CSSImageValue : public CSSValue {
 public:
-    static PassRefPtr<CSSImageValue> create(const KURL& url) { return adoptRef(new CSSImageValue(url)); }
-    static PassRefPtr<CSSImageValue> create(const KURL& url, StyleImage* image) { return adoptRef(new CSSImageValue(url, image)); }
+    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const KURL& url, StyleImage* image = 0)
+    {
+        return adoptRefWillBeNoop(new CSSImageValue(url, url, image));
+    }
+    static PassRefPtrWillBeRawPtr<CSSImageValue> create(const String& rawValue, const KURL& url, StyleImage* image = 0)
+    {
+        return adoptRefWillBeNoop(new CSSImageValue(rawValue, url, image));
+    }
     ~CSSImageValue();
 
     StyleFetchedImage* cachedImage(ResourceFetcher*, const ResourceLoaderOptions&);
@@ -44,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;
 
@@ -58,11 +70,15 @@ 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;
@@ -70,6 +86,6 @@ private:
 
 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageValue, isImageValue());
 
-} // namespace WebCore
+} // namespace blink
 
 #endif // CSSImageValue_h