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

Side by Side Diff: third_party/WebKit/Source/core/fetch/MemoryCache.h

Issue 2251853005: Reland: Add MemoryCoordinatorClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 4 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
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) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 4 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
(...skipping 10 matching lines...) Expand all
21 This class provides all functionality needed for loading images, style sheet s and html 21 This class provides all functionality needed for loading images, style sheet s and html
22 pages from the web. It has a memory cache for these objects. 22 pages from the web. It has a memory cache for these objects.
23 */ 23 */
24 24
25 #ifndef MemoryCache_h 25 #ifndef MemoryCache_h
26 #define MemoryCache_h 26 #define MemoryCache_h
27 27
28 #include "core/CoreExport.h" 28 #include "core/CoreExport.h"
29 #include "core/fetch/Resource.h" 29 #include "core/fetch/Resource.h"
30 #include "platform/MemoryCacheDumpProvider.h" 30 #include "platform/MemoryCacheDumpProvider.h"
31 #include "platform/MemoryCoordinator.h"
31 #include "public/platform/WebThread.h" 32 #include "public/platform/WebThread.h"
32 #include "wtf/Allocator.h" 33 #include "wtf/Allocator.h"
33 #include "wtf/HashMap.h" 34 #include "wtf/HashMap.h"
34 #include "wtf/Noncopyable.h" 35 #include "wtf/Noncopyable.h"
35 #include "wtf/Vector.h" 36 #include "wtf/Vector.h"
36 #include "wtf/text/StringHash.h" 37 #include "wtf/text/StringHash.h"
37 #include "wtf/text/WTFString.h" 38 #include "wtf/text/WTFString.h"
38 39
39 namespace blink { 40 namespace blink {
40 41
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 MemoryCacheLRUList() : m_head(nullptr), m_tail(nullptr) { } 116 MemoryCacheLRUList() : m_head(nullptr), m_tail(nullptr) { }
116 DECLARE_TRACE(); 117 DECLARE_TRACE();
117 }; 118 };
118 119
119 } // namespace blink 120 } // namespace blink
120 121
121 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::MemoryCacheLRUList); 122 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::MemoryCacheLRUList);
122 123
123 namespace blink { 124 namespace blink {
124 125
125 class CORE_EXPORT MemoryCache final : public GarbageCollectedFinalized<MemoryCac he>, public WebThread::TaskObserver, public MemoryCacheDumpClient { 126 class CORE_EXPORT MemoryCache final : public GarbageCollectedFinalized<MemoryCac he>, public WebThread::TaskObserver, public MemoryCacheDumpClient, public Memory CoordinatorClient {
126 USING_GARBAGE_COLLECTED_MIXIN(MemoryCache); 127 USING_GARBAGE_COLLECTED_MIXIN(MemoryCache);
127 WTF_MAKE_NONCOPYABLE(MemoryCache); 128 WTF_MAKE_NONCOPYABLE(MemoryCache);
128 public: 129 public:
129 static MemoryCache* create(); 130 static MemoryCache* create();
130 ~MemoryCache(); 131 ~MemoryCache();
131 DECLARE_TRACE(); 132 DECLARE_TRACE();
132 133
133 struct TypeStatistic { 134 struct TypeStatistic {
134 STACK_ALLOCATED(); 135 STACK_ALLOCATED();
135 size_t count; 136 size_t count;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 void willProcessTask() override; 214 void willProcessTask() override;
214 void didProcessTask() override; 215 void didProcessTask() override;
215 216
216 void pruneAll(); 217 void pruneAll();
217 218
218 void updateFramePaintTimestamp(); 219 void updateFramePaintTimestamp();
219 220
220 // Take memory usage snapshot for tracing. 221 // Take memory usage snapshot for tracing.
221 bool onMemoryDump(WebMemoryDumpLevelOfDetail, WebProcessMemoryDump*) overrid e; 222 bool onMemoryDump(WebMemoryDumpLevelOfDetail, WebProcessMemoryDump*) overrid e;
222 223
224 void onMemoryPressure(WebMemoryPressureLevel) override;
225
223 bool isInSameLRUListForTest(const Resource*, const Resource*); 226 bool isInSameLRUListForTest(const Resource*, const Resource*);
224 private: 227 private:
225 enum PruneStrategy { 228 enum PruneStrategy {
226 // Automatically decide how much to prune. 229 // Automatically decide how much to prune.
227 AutomaticPrune, 230 AutomaticPrune,
228 // Maximally prune resources. 231 // Maximally prune resources.
229 MaximalPrune 232 MaximalPrune
230 }; 233 };
231 234
232 MemoryCache(); 235 MemoryCache();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 // Returns the global cache. 307 // Returns the global cache.
305 CORE_EXPORT MemoryCache* memoryCache(); 308 CORE_EXPORT MemoryCache* memoryCache();
306 309
307 // Sets the global cache, used to swap in a test instance. Returns the old 310 // Sets the global cache, used to swap in a test instance. Returns the old
308 // MemoryCache object. 311 // MemoryCache object.
309 CORE_EXPORT MemoryCache* replaceMemoryCacheForTesting(MemoryCache*); 312 CORE_EXPORT MemoryCache* replaceMemoryCacheForTesting(MemoryCache*);
310 313
311 } // namespace blink 314 } // namespace blink
312 315
313 #endif 316 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp ('k') | third_party/WebKit/Source/core/fetch/MemoryCache.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698