Index: third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp b/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp |
index 7877d17df0114948b3e627d8a7ee1b8007f4372e..582a462c96bd2cd7eba19635f5e6af436fd85907 100644 |
--- a/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp |
+++ b/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp |
@@ -35,16 +35,13 @@ class NullImageResourceInfo final |
private: |
const KURL& url() const override { return m_url; } |
- bool isSchedulingReload() const override { return false; } |
bool hasDevicePixelRatioHeaderValue() const override { return false; } |
float devicePixelRatioHeaderValue() const override { return 1.0; } |
const ResourceResponse& response() const override { return m_response; } |
ResourceStatus getStatus() const override { return ResourceStatus::Cached; } |
bool isPlaceholder() const override { return false; } |
bool isCacheValidator() const override { return false; } |
- bool schedulingReloadOrShouldReloadBrokenPlaceholder() const override { |
- return false; |
- } |
+ bool shouldReloadBrokenPlaceholder() const override { return false; } |
bool isAccessAllowed( |
SecurityOrigin*, |
bool doesCurrentFrameHasSingleSecurityOrigin) const override { |
@@ -52,6 +49,7 @@ class NullImageResourceInfo final |
} |
bool hasCacheControlNoStoreHeader() const override { return false; } |
const ResourceError& resourceError() const override { return m_error; } |
+ ImageResource* resourceForTest() const override { return nullptr; } |
const KURL m_url; |
const ResourceResponse m_response; |
@@ -106,8 +104,7 @@ void ImageResourceContent::addObserver(ImageResourceObserver* observer) { |
observer->imageChanged(this); |
} |
- if (isLoaded() && m_observers.contains(observer) && |
- !m_info->schedulingReloadOrShouldReloadBrokenPlaceholder()) { |
+ if (isLoaded() && m_observers.contains(observer)) { |
markObserverFinished(observer); |
observer->imageNotifyFinished(this); |
} |
@@ -248,8 +245,7 @@ void ImageResourceContent::notifyObservers( |
if (m_observers.contains(observer)) { |
observer->imageChanged(this, changeRect); |
if (notifyingFinishOption == ShouldNotifyFinish && |
- m_observers.contains(observer) && |
- !m_info->schedulingReloadOrShouldReloadBrokenPlaceholder()) { |
+ m_observers.contains(observer)) { |
markObserverFinished(observer); |
observer->imageNotifyFinished(this); |
} |
@@ -278,7 +274,8 @@ inline void ImageResourceContent::clearImage() { |
void ImageResourceContent::updateImage(PassRefPtr<SharedBuffer> data, |
ClearImageOption clearImageOption, |
- bool allDataReceived) { |
+ bool allDataReceived, |
+ ResourceFetcher* fetcherForReload) { |
TRACE_EVENT0("blink", "ImageResourceContent::updateImage"); |
if (clearImageOption == ImageResourceContent::ClearExistingImage) { |
@@ -318,6 +315,11 @@ void ImageResourceContent::updateImage(PassRefPtr<SharedBuffer> data, |
} |
} |
+ if (m_info->shouldReloadBrokenPlaceholder()) { |
+ if (m_info->reloadIfLoFiOrPlaceholder(fetcherForReload)) |
+ return; |
+ } |
+ |
if (!m_image || m_image->isNull()) { |
clearImage(); |
m_info->decodeError(allDataReceived); |
@@ -446,5 +448,8 @@ const ResourceResponse& ImageResourceContent::response() const { |
const ResourceError& ImageResourceContent::resourceError() const { |
return m_info->resourceError(); |
} |
+ImageResource* ImageResourceContent::resourceForTest() const { |
+ return m_info->resourceForTest(); |
+} |
} // namespace blink |