#ifndef CSSImageValue_h
#define CSSImageValue_h
#include "CSSValue.h"
#include <wtf/RefPtr.h>
namespace WebCore {
class CachedResourceLoader;
class Element;
class StyleCachedImage;
class StyleImage;
class RenderObject;
class CSSImageValue : public CSSValue {
public:
static PassRefPtr<CSSImageValue> create(const String& url) { return adoptRef(new CSSImageValue(url)); }
static PassRefPtr<CSSImageValue> create(const String& url, StyleImage* image) { return adoptRef(new CSSImageValue(url, image)); }
~CSSImageValue();
StyleCachedImage* cachedImage(CachedResourceLoader*);
StyleImage* cachedOrPendingImage();
const String& url() { return m_url; }
String customCssText() const;
PassRefPtr<CSSValue> cloneForCSSOM() const;
bool hasFailedOrCanceledSubresources() const;
bool equals(const CSSImageValue&) const;
bool knownToBeOpaque(const RenderObject*) const;
void setInitiator(const AtomicString& name) { m_initiatorName = name; }
private:
explicit CSSImageValue(const String& url);
CSSImageValue(const String& url, StyleImage*);
void detachPendingImage();
String m_url;
RefPtr<StyleImage> m_image;
bool m_accessedImage;
AtomicString m_initiatorName;
};
}
#endif // CSSImageValue_h