Index: Source/core/loader/ImageLoader.cpp |
diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp |
index 3c0d8b679fdac3776145ae9c6e980eae03d51343..53b0e7118ab693bdb10a407430b555e5de63467f 100644 |
--- a/Source/core/loader/ImageLoader.cpp |
+++ b/Source/core/loader/ImageLoader.cpp |
@@ -289,8 +289,13 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up |
} |
ImageResource* oldImage = m_image.get(); |
- if (newImage != oldImage) { |
- sourceImageChanged(); |
+ bool resizingToViewport = updateBehavior == UpdateSizeChanged && m_element->layoutObject() && m_element->layoutObject()->isImage(); |
+ bool selectedNewImage = newImage != oldImage; |
esprehn
2015/03/31 00:34:54
I would just inline the newImage != oldImage check
|
+ if (resizingToViewport && !selectedNewImage) { |
esprehn
2015/03/31 00:34:54
I might add a method like isLayoutImage()
and the
rhogan
2015/03/31 19:03:19
Mm, I passed on this. Hope that's OK.
|
+ toLayoutImage(m_element->layoutObject())->intrinsicSizeChanged(); |
+ } else { |
+ if (selectedNewImage) |
+ sourceImageChanged(); |
if (m_hasPendingLoadEvent) { |
loadEventSender().cancelEvent(this); |
@@ -318,8 +323,6 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up |
if (oldImage) |
oldImage->removeClient(this); |
- } else if (updateBehavior == UpdateSizeChanged && m_element->layoutObject() && m_element->layoutObject()->isImage()) { |
- toLayoutImage(m_element->layoutObject())->intrinsicSizeChanged(); |
} |
if (LayoutImageResource* imageResource = layoutImageResource()) |