Index: third_party/WebKit/Source/core/loader/ImageLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.cpp b/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
index 7266759fdd76a27b184e5f16796f7e801dc8a2dc..44c00dc0df4d9016c1963855db9b793653453c94 100644 |
--- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
@@ -244,10 +244,14 @@ void ImageLoader::setImageWithoutConsideringPendingLoadEvent(ImageResource* newI |
m_hasPendingErrorEvent = false; |
} |
m_imageComplete = true; |
- if (newImage) |
+ if (newImage) { |
newImage->addClient(this); |
- if (oldImage) |
+ newImage->addObserver(this); |
+ } |
+ if (oldImage) { |
oldImage->removeClient(this); |
+ oldImage->removeObserver(this); |
+ } |
} |
if (LayoutImageResource* imageResource = layoutImageResource()) |
@@ -390,11 +394,14 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up |
updateLayoutObject(); |
// If newImage exists and is cached, addClient() will result in the load event |
// being queued to fire. Ensure this happens after beforeload is dispatched. |
- if (newImage) |
+ if (newImage) { |
newImage->addClient(this); |
- |
- if (oldImage) |
+ newImage->addObserver(this); |
+ } |
+ if (oldImage) { |
oldImage->removeClient(this); |
+ oldImage->removeObserver(this); |
+ } |
} |
if (LayoutImageResource* imageResource = layoutImageResource()) |
@@ -653,7 +660,7 @@ void ImageLoader::removeClient(ImageLoaderClient* client) |
m_clients.remove(client); |
} |
-bool ImageLoader::getImageAnimationPolicy(ImageResource*, ImageAnimationPolicy& policy) |
+bool ImageLoader::getImageAnimationPolicy(ImageAnimationPolicy& policy) |
{ |
if (!element()->document().settings()) |
return false; |