Index: third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp |
diff --git a/third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp b/third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp |
index 745d979f619014d132f3afd30088efb834717643..d951dd87e92fa0d457a31e2f228f41aaffa8b505 100644 |
--- a/third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp |
+++ b/third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp |
@@ -4,11 +4,15 @@ |
#include "core/dom/MemoryCoordinator.h" |
+#include "bindings/core/v8/V8PerIsolateData.h" |
#include "core/fetch/MemoryCache.h" |
+#include "core/page/Page.h" |
+#include "core/paint/InlineTextBoxPainter.h" |
#include "platform/TraceEvent.h" |
#include "platform/fonts/FontCache.h" |
#include "platform/graphics/ImageDecodingStore.h" |
#include "platform/heap/Heap.h" |
+#include "platform/text/CompressibleString.h" |
#include "wtf/allocator/Partitions.h" |
namespace blink { |
@@ -30,13 +34,21 @@ MemoryCoordinator::~MemoryCoordinator() |
void MemoryCoordinator::onMemoryPressure(WebMemoryPressureLevel level) |
{ |
TRACE_EVENT0("blink", "MemoryCoordinator::onMemoryPressure"); |
+ |
if (level == WebMemoryPressureLevelCritical) { |
// Clear the image cache. |
ImageDecodingStore::instance().clear(); |
+ memoryCache()->pruneAll(); |
esprehn
2016/08/05 23:00:57
Would it be possible to independently hook up thes
tasak
2016/08/08 04:47:36
Acknowledged.
|
+ InlineTextBoxPainter::invalidateTextBlobCache(); |
+ Page::onMemoryPressure(); |
+ FontCache::fontCache()->invalidateShapeCache(); |
FontCache::fontCache()->invalidate(); |
+ V8PerIsolateData::purgeMemory(); |
+ CompressibleStringImpl::compressAll(); |
esprehn
2016/08/05 23:00:58
hmm without suspend doing this is pretty bad, it m
tasak
2016/08/08 04:47:36
Acknowledged.
|
+ } else { |
esprehn
2016/08/05 23:00:57
else if
tasak
2016/08/08 04:47:36
Acknowledged.
|
+ if (ProcessHeap::isLowEndDevice()) |
+ memoryCache()->pruneAll(); |
} |
- if (ProcessHeap::isLowEndDevice()) |
- memoryCache()->pruneAll(); |
WTF::Partitions::decommitFreeableMemory(); |
} |