summaryrefslogtreecommitdiffstats
path: root/WebCore/css/CSSImageValue.cpp
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2010-09-08 12:18:00 +0100
committerKristian Monsen <kristianm@google.com>2010-09-11 12:08:58 +0100
commit5ddde30071f639962dd557c453f2ad01f8f0fd00 (patch)
tree775803c4ab35af50aa5f5472cd1fb95fe9d5152d /WebCore/css/CSSImageValue.cpp
parent3e63d9b33b753ca86d0765d1b3d711114ba9e34f (diff)
downloadexternal_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.zip
external_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.tar.gz
external_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.tar.bz2
Merge WebKit at r66666 : Initial merge by git.
Change-Id: I57dedeb49859adc9c539e760f0e749768c66626f
Diffstat (limited to 'WebCore/css/CSSImageValue.cpp')
-rw-r--r--WebCore/css/CSSImageValue.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/WebCore/css/CSSImageValue.cpp b/WebCore/css/CSSImageValue.cpp
index 96a8dec..dc2d700 100644
--- a/WebCore/css/CSSImageValue.cpp
+++ b/WebCore/css/CSSImageValue.cpp
@@ -26,6 +26,7 @@
#include "CachedImage.h"
#include "DocLoader.h"
#include "StyleCachedImage.h"
+#include "StylePendingImage.h"
namespace WebCore {
@@ -43,8 +44,19 @@ CSSImageValue::CSSImageValue()
CSSImageValue::~CSSImageValue()
{
- if (m_image)
- m_image->cachedImage()->removeClient(this);
+ if (m_image && m_image->isCachedImage())
+ static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->removeClient(this);
+}
+
+StyleImage* CSSImageValue::cachedOrPendingImage()
+{
+ if (getIdent() == CSSValueNone)
+ return 0;
+
+ if (!m_image)
+ m_image = StylePendingImage::create(this);
+
+ return m_image.get();
}
StyleCachedImage* CSSImageValue::cachedImage(DocLoader* loader)
@@ -71,20 +83,20 @@ StyleCachedImage* CSSImageValue::cachedImage(DocLoader* loader, const String& ur
}
}
- return m_image.get();
+ return m_image->isCachedImage() ? static_cast<StyleCachedImage*>(m_image.get()) : 0;
}
String CSSImageValue::cachedImageURL()
{
- if (!m_image)
+ if (!m_image || !m_image->isCachedImage())
return String();
- return m_image->cachedImage()->url();
+ return static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->url();
}
void CSSImageValue::clearCachedImage()
{
- if (m_image)
- m_image->cachedImage()->removeClient(this);
+ if (m_image && m_image->isCachedImage())
+ static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->removeClient(this);
m_image = 0;
m_accessedImage = false;
}