| Index: third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| index 2124f45c950eebeb31443d97ec0fcd87ed4ef2a6..472011ecc1d4f824c1980053de6f0114e20a7220 100644
|
| --- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| @@ -461,6 +461,7 @@ void ImageResource::ResponseReceived(
|
| bool ImageResource::ShouldShowPlaceholder() const {
|
| switch (placeholder_option_) {
|
| case PlaceholderOption::kShowAndReloadPlaceholderAlways:
|
| + case PlaceholderOption::kShowAndDoNotReloadPlaceholder:
|
| return true;
|
| case PlaceholderOption::kReloadPlaceholderOnDecodeError:
|
| case PlaceholderOption::kDoNotReloadPlaceholder:
|
| @@ -476,6 +477,7 @@ bool ImageResource::ShouldReloadBrokenPlaceholder() const {
|
| return ErrorOccurred();
|
| case PlaceholderOption::kReloadPlaceholderOnDecodeError:
|
| return GetStatus() == ResourceStatus::kDecodeError;
|
| + case PlaceholderOption::kShowAndDoNotReloadPlaceholder:
|
| case PlaceholderOption::kDoNotReloadPlaceholder:
|
| return false;
|
| }
|
| @@ -518,6 +520,8 @@ void ImageResource::ReloadIfLoFiOrPlaceholderImage(
|
| // The reloaded image should not use any previews transformations.
|
| WebURLRequest::PreviewsState previews_state_for_reload =
|
| WebURLRequest::kPreviewsNoTransform;
|
| + WebURLRequest::PreviewsState old_previews_state =
|
| + GetResourceRequest().GetPreviewsState();
|
|
|
| if (policy == kReloadIfNeeded && (GetResourceRequest().GetPreviewsState() &
|
| WebURLRequest::kClientLoFiOn)) {
|
| @@ -532,7 +536,13 @@ void ImageResource::ReloadIfLoFiOrPlaceholderImage(
|
|
|
| if (placeholder_option_ != PlaceholderOption::kDoNotReloadPlaceholder)
|
| ClearRangeRequestHeader();
|
| - placeholder_option_ = PlaceholderOption::kDoNotReloadPlaceholder;
|
| +
|
| + if (old_previews_state & WebURLRequest::kClientLoFiOn &&
|
| + policy != kReloadAlways) {
|
| + placeholder_option_ = PlaceholderOption::kShowAndDoNotReloadPlaceholder;
|
| + } else {
|
| + placeholder_option_ = PlaceholderOption::kDoNotReloadPlaceholder;
|
| + }
|
|
|
| if (IsLoading()) {
|
| Loader()->Cancel();
|
|
|