Index: third_party/WebKit/Source/core/html/HTMLImageElement.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp |
index cab316648a46ec8a9b4c3be5ea27dd641e07bafc..50f9e02bdec277308a2ba2fd70f57d3649bff314 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp |
@@ -227,6 +227,7 @@ void HTMLImageElement::setBestFitURLAndDPRFromImageCandidate(const ImageCandidat |
{ |
m_bestFitImageURL = candidate.url(); |
float candidateDensity = candidate.density(); |
+ float oldImageDevicePixelRatio = m_imageDevicePixelRatio; |
if (candidateDensity >= 0) |
m_imageDevicePixelRatio = 1.0 / candidateDensity; |
@@ -237,9 +238,13 @@ void HTMLImageElement::setBestFitURLAndDPRFromImageCandidate(const ImageCandidat |
} else if (!candidate.srcOrigin()) { |
UseCounter::count(document(), UseCounter::SrcsetXDescriptor); |
} |
- if (layoutObject() && layoutObject()->isImage()) |
+ if (layoutObject() && layoutObject()->isImage()) { |
LayoutImageItem(toLayoutImage(layoutObject())).setImageDevicePixelRatio(m_imageDevicePixelRatio); |
+ if (oldImageDevicePixelRatio != m_imageDevicePixelRatio) |
+ toLayoutImage(layoutObject())->intrinsicSizeChanged(); |
+ } |
+ |
if (intrinsicSizingViewportDependant) { |
if (!m_listener) |
m_listener = ViewportChangeListener::create(this); |