Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Unified Diff: third_party/WebKit/Source/core/loader/resource/ImageResource.cpp

Issue 2797993007: Show image placeholders on dimension decode error (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 c91542567a841ce12ec16894141b4a8d9b1fb2b8..294416899427b764c5ca8873aeeae5101279063f 100644
--- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
@@ -436,6 +436,7 @@ void ImageResource::responseReceived(
bool ImageResource::shouldShowPlaceholder() const {
switch (m_placeholderOption) {
case PlaceholderOption::ShowAndReloadPlaceholderAlways:
+ case PlaceholderOption::ShowAndDoNotReloadPlaceholder:
return true;
case PlaceholderOption::ReloadPlaceholderOnDecodeError:
case PlaceholderOption::DoNotReloadPlaceholder:
@@ -451,6 +452,7 @@ bool ImageResource::shouldReloadBrokenPlaceholder() const {
return errorOccurred();
case PlaceholderOption::ReloadPlaceholderOnDecodeError:
return getStatus() == ResourceStatus::DecodeError;
+ case PlaceholderOption::ShowAndDoNotReloadPlaceholder:
case PlaceholderOption::DoNotReloadPlaceholder:
return false;
}
@@ -488,11 +490,19 @@ void ImageResource::reloadIfLoFiOrPlaceholderImage(
setCachePolicyBypassingCache();
+ WebURLRequest::PreviewsState previewsState =
sclittle 2017/04/06 21:58:06 nit: maybe name this "previewsStateBeforeReload" o
Raj 2017/05/03 07:05:18 Renamed as old_previews_state as per new naming co
+ resourceRequest().previewsState();
+
setPreviewsStateNoTransform();
if (m_placeholderOption != PlaceholderOption::DoNotReloadPlaceholder)
clearRangeRequestHeader();
- m_placeholderOption = PlaceholderOption::DoNotReloadPlaceholder;
+
+ if (previewsState & WebURLRequest::ClientLoFiOn) {
sclittle 2017/04/06 21:58:06 Chrome should still show the full image if the use
Raj 2017/05/03 07:05:18 Thanks. Added this check.
+ m_placeholderOption = PlaceholderOption::ShowAndDoNotReloadPlaceholder;
+ } else {
+ m_placeholderOption = PlaceholderOption::DoNotReloadPlaceholder;
+ }
sclittle 2017/04/06 21:58:06 Could you add tests for the new behavior you've ad
if (isLoading()) {
loader()->cancel();

Powered by Google App Engine
This is Rietveld 408576698