| Index: third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.cpp b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| index 929cb375d24e5dcb1ae3a954288a0506d43996ba..97f790370306ad66ca0d81aecdc6d3de301eff23 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| @@ -23,6 +23,7 @@
|
|
|
| #include "core/fetch/ImageResource.h"
|
|
|
| +#include "base/metrics/histogram_macros.h"
|
| #include "core/fetch/ImageResourceObserver.h"
|
| #include "core/fetch/MemoryCache.h"
|
| #include "core/fetch/ResourceClient.h"
|
| @@ -107,7 +108,8 @@ ImageResource::ImageResource(const ResourceRequest& resourceRequest,
|
| m_image(nullptr),
|
| m_hasDevicePixelRatioHeaderValue(false),
|
| m_isSchedulingReload(false),
|
| - m_isPlaceholder(isPlaceholder) {
|
| + m_isPlaceholder(isPlaceholder),
|
| + m_isRefetchableFromDiskCache(true) {
|
| RESOURCE_LOADING_DVLOG(1) << "new ImageResource(ResourceRequest) " << this;
|
| }
|
|
|
| @@ -118,7 +120,8 @@ ImageResource::ImageResource(blink::Image* image,
|
| m_image(image),
|
| m_hasDevicePixelRatioHeaderValue(false),
|
| m_isSchedulingReload(false),
|
| - m_isPlaceholder(false) {
|
| + m_isPlaceholder(false),
|
| + m_isRefetchableFromDiskCache(true) {
|
| RESOURCE_LOADING_DVLOG(1) << "new ImageResource(Image) " << this;
|
| setStatus(Cached);
|
| }
|
| @@ -174,6 +177,9 @@ void ImageResource::didAddClient(ResourceClient* client) {
|
| if (m_isSchedulingReload || shouldReloadBrokenPlaceholder())
|
| return;
|
|
|
| + if (client->isRefetchableFromDiskCache())
|
| + m_isRefetchableFromDiskCache = false;
|
| +
|
| Resource::didAddClient(client);
|
| }
|
|
|
| @@ -252,6 +258,10 @@ void ImageResource::destroyDecodedDataIfPossible() {
|
| return;
|
| CHECK(!errorOccurred());
|
| m_image->destroyDecodedData();
|
| + if (!isPreloaded() && m_isRefetchableFromDiskCache) {
|
| + UMA_HISTOGRAM_MEMORY_KB("Memory.Renderer.EstimatedDroppableEncodedSize",
|
| + encodedSize() / 1024);
|
| + }
|
| }
|
|
|
| void ImageResource::doResetAnimation() {
|
|
|