Chromium Code Reviews

Unified Diff: third_party/WebKit/Source/core/fetch/ImageResource.cpp

Issue 2499263002: Add UMA to estimate deroppable memory usage of encoded data size in Resources (Closed)
Patch Set: Address on reviews Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
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() {

Powered by Google App Engine