Index: Source/core/loader/ImageLoader.cpp |
diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp |
index 9fbabee79622c331ba92247f7abdc00eb8968b9a..73fa90a5042561d00acf68b6469811382e4ad928 100644 |
--- a/Source/core/loader/ImageLoader.cpp |
+++ b/Source/core/loader/ImageLoader.cpp |
@@ -115,6 +115,7 @@ void ImageLoader::setImageWithoutConsideringPendingLoadEvent(CachedImage* newIma |
ASSERT(m_failedLoadURL.isEmpty()); |
CachedImage* oldImage = m_image.get(); |
if (newImage != oldImage) { |
+ sourceImageChanged(); |
m_image = newImage; |
if (m_hasPendingBeforeLoadEvent) { |
beforeLoadEventSender().cancelEvent(this); |
@@ -190,9 +191,11 @@ void ImageLoader::updateFromElement() |
m_hasPendingErrorEvent = true; |
errorEventSender().dispatchEventSoon(this); |
} |
- |
+ |
CachedImage* oldImage = m_image.get(); |
if (newImage != oldImage) { |
+ sourceImageChanged(); |
+ |
if (m_hasPendingBeforeLoadEvent) { |
beforeLoadEventSender().cancelEvent(this); |
m_hasPendingBeforeLoadEvent = false; |
@@ -444,6 +447,15 @@ void ImageLoader::elementDidMoveToNewDocument() |
setImage(0); |
} |
+void ImageLoader::sourceImageChanged() |
+{ |
+ HashSet<ImageLoaderClient*>::iterator end = m_clients.end(); |
+ for (HashSet<ImageLoaderClient*>::iterator it = m_clients.begin(); it != end; ++it) { |
+ ImageLoaderClient* handle = *it; |
+ handle->notifyImageSourceChanged(); |
+ } |
+} |
+ |
inline void ImageLoader::clearFailedLoadURL() |
{ |
m_failedLoadURL = AtomicString(); |