| 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
|
|
|