Chromium Code Reviews| 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()) |