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

Side by Side Diff: third_party/WebKit/Source/core/fetch/Resource.cpp

Issue 2393113002: ImageResource: Reset the encoded image size after receiving all data (Closed)
Patch Set: Rename encodedSizeMemoryUsage -> encodedSizeMemoryUsageForTesting Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/core/fetch/Resource.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
7 rights reserved. 7 rights reserved.
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 for (const auto& resource : resources) 297 for (const auto& resource : resources)
298 resource->finishPendingClients(); 298 resource->finishPendingClients();
299 } 299 }
300 300
301 Resource::Resource(const ResourceRequest& request, 301 Resource::Resource(const ResourceRequest& request,
302 Type type, 302 Type type,
303 const ResourceLoaderOptions& options) 303 const ResourceLoaderOptions& options)
304 : m_loadFinishTime(0), 304 : m_loadFinishTime(0),
305 m_identifier(0), 305 m_identifier(0),
306 m_encodedSize(0), 306 m_encodedSize(0),
307 m_encodedSizeMemoryUsage(0),
307 m_decodedSize(0), 308 m_decodedSize(0),
308 m_overheadSize(calculateOverheadSize()), 309 m_overheadSize(calculateOverheadSize()),
309 m_preloadCount(0), 310 m_preloadCount(0),
310 m_preloadDiscoveryTime(0.0), 311 m_preloadDiscoveryTime(0.0),
311 m_cacheIdentifier(MemoryCache::defaultCacheIdentifier()), 312 m_cacheIdentifier(MemoryCache::defaultCacheIdentifier()),
312 m_preloadResult(PreloadNotReferenced), 313 m_preloadResult(PreloadNotReferenced),
313 m_type(type), 314 m_type(type),
314 m_status(NotStarted), 315 m_status(NotStarted),
315 m_needsSynchronousCacheHit(false), 316 m_needsSynchronousCacheHit(false),
316 m_linkPreload(false), 317 m_linkPreload(false),
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 void Resource::setDecodedSize(size_t decodedSize) { 787 void Resource::setDecodedSize(size_t decodedSize) {
787 if (decodedSize == m_decodedSize) 788 if (decodedSize == m_decodedSize)
788 return; 789 return;
789 size_t oldSize = size(); 790 size_t oldSize = size();
790 m_decodedSize = decodedSize; 791 m_decodedSize = decodedSize;
791 memoryCache()->update(this, oldSize, size()); 792 memoryCache()->update(this, oldSize, size());
792 memoryCache()->updateDecodedResource(this, UpdateForPropertyChange); 793 memoryCache()->updateDecodedResource(this, UpdateForPropertyChange);
793 } 794 }
794 795
795 void Resource::setEncodedSize(size_t encodedSize) { 796 void Resource::setEncodedSize(size_t encodedSize) {
796 if (encodedSize == m_encodedSize) 797 if (encodedSize == m_encodedSize && encodedSize == m_encodedSizeMemoryUsage)
797 return; 798 return;
798 size_t oldSize = size(); 799 size_t oldSize = size();
799 m_encodedSize = encodedSize; 800 m_encodedSize = encodedSize;
801 m_encodedSizeMemoryUsage = encodedSize;
800 memoryCache()->update(this, oldSize, size()); 802 memoryCache()->update(this, oldSize, size());
801 } 803 }
802 804
805 void Resource::setEncodedSizeMemoryUsage(size_t encodedSize) {
806 m_encodedSizeMemoryUsage = encodedSize;
807 }
808
803 void Resource::didAccessDecodedData() { 809 void Resource::didAccessDecodedData() {
804 memoryCache()->updateDecodedResource(this, UpdateForAccess); 810 memoryCache()->updateDecodedResource(this, UpdateForAccess);
805 memoryCache()->prune(); 811 memoryCache()->prune();
806 } 812 }
807 813
808 void Resource::finishPendingClients() { 814 void Resource::finishPendingClients() {
809 // We're going to notify clients one by one. It is simple if the client does 815 // We're going to notify clients one by one. It is simple if the client does
810 // nothing. However there are a couple other things that can happen. 816 // nothing. However there are a couple other things that can happen.
811 // 817 //
812 // 1. Clients can be added during the loop. Make sure they are not processed. 818 // 1. Clients can be added during the loop. Make sure they are not processed.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 } 860 }
855 861
856 void Resource::onMemoryDump(WebMemoryDumpLevelOfDetail levelOfDetail, 862 void Resource::onMemoryDump(WebMemoryDumpLevelOfDetail levelOfDetail,
857 WebProcessMemoryDump* memoryDump) const { 863 WebProcessMemoryDump* memoryDump) const {
858 static const size_t kMaxURLReportLength = 128; 864 static const size_t kMaxURLReportLength = 128;
859 static const int kMaxResourceClientToShowInMemoryInfra = 10; 865 static const int kMaxResourceClientToShowInMemoryInfra = 10;
860 866
861 const String dumpName = getMemoryDumpName(); 867 const String dumpName = getMemoryDumpName();
862 WebMemoryAllocatorDump* dump = 868 WebMemoryAllocatorDump* dump =
863 memoryDump->createMemoryAllocatorDump(dumpName); 869 memoryDump->createMemoryAllocatorDump(dumpName);
864 dump->addScalar("encoded_size", "bytes", m_encodedSize); 870 dump->addScalar("encoded_size", "bytes", m_encodedSizeMemoryUsage);
865 if (hasClientsOrObservers()) 871 if (hasClientsOrObservers())
866 dump->addScalar("live_size", "bytes", m_encodedSize); 872 dump->addScalar("live_size", "bytes", m_encodedSizeMemoryUsage);
867 else 873 else
868 dump->addScalar("dead_size", "bytes", m_encodedSize); 874 dump->addScalar("dead_size", "bytes", m_encodedSizeMemoryUsage);
869 875
870 if (m_data) 876 if (m_data)
871 m_data->onMemoryDump(dumpName, memoryDump); 877 m_data->onMemoryDump(dumpName, memoryDump);
872 878
873 if (levelOfDetail == WebMemoryDumpLevelOfDetail::Detailed) { 879 if (levelOfDetail == WebMemoryDumpLevelOfDetail::Detailed) {
874 String urlToReport = url().getString(); 880 String urlToReport = url().getString();
875 if (urlToReport.length() > kMaxURLReportLength) { 881 if (urlToReport.length() > kMaxURLReportLength) {
876 urlToReport.truncate(kMaxURLReportLength); 882 urlToReport.truncate(kMaxURLReportLength);
877 urlToReport = urlToReport + "..."; 883 urlToReport = urlToReport + "...";
878 } 884 }
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 case Resource::TextTrack: 1104 case Resource::TextTrack:
1099 case Resource::Media: 1105 case Resource::Media:
1100 case Resource::Manifest: 1106 case Resource::Manifest:
1101 return false; 1107 return false;
1102 } 1108 }
1103 NOTREACHED(); 1109 NOTREACHED();
1104 return false; 1110 return false;
1105 } 1111 }
1106 1112
1107 } // namespace blink 1113 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/Resource.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698