| Index: Source/core/loader/ImageLoader.cpp
|
| diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp
|
| index 3c0d8b679fdac3776145ae9c6e980eae03d51343..91f5cd67bbaf7dc3d8d21c57e78de7c0890ae84e 100644
|
| --- a/Source/core/loader/ImageLoader.cpp
|
| +++ b/Source/core/loader/ImageLoader.cpp
|
| @@ -289,8 +289,11 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
|
| }
|
|
|
| ImageResource* oldImage = m_image.get();
|
| - if (newImage != oldImage) {
|
| - sourceImageChanged();
|
| + if (updateBehavior == UpdateSizeChanged && m_element->layoutObject() && m_element->layoutObject()->isImage() && newImage == oldImage) {
|
| + toLayoutImage(m_element->layoutObject())->intrinsicSizeChanged();
|
| + } else {
|
| + if (newImage != oldImage)
|
| + sourceImageChanged();
|
|
|
| if (m_hasPendingLoadEvent) {
|
| loadEventSender().cancelEvent(this);
|
| @@ -318,8 +321,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())
|
|
|