Index: base/trace_event/memory_infra_background_whitelist.cc |
diff --git a/base/trace_event/memory_infra_background_whitelist.cc b/base/trace_event/memory_infra_background_whitelist.cc |
index 03dc108c076be2fa66c1b79a087ee2d419476112..ba28d4404c3455cf02c65177dba9ce70e7895e80 100644 |
--- a/base/trace_event/memory_infra_background_whitelist.cc |
+++ b/base/trace_event/memory_infra_background_whitelist.cc |
@@ -17,15 +17,63 @@ namespace { |
// providers can be added here only if the background mode dump has very |
// less performance and memory overhead. |
const char* const kDumpProviderWhitelist[] = { |
- // TODO(ssid): Fill this list with dump provider names which support |
- // background mode, crbug.com/613198. |
+ "BlinkGC", |
+ "ChildDiscardableSharedMemoryManager", |
+ "DOMStorage", |
+ "HostDiscardableSharedMemoryManager", |
+ "IndexedDBBackingStore", |
+ "JavaHeap", |
+ "LeveldbValueStore", |
+ "Malloc", |
+ "PartitionAlloc", |
+ "ProcessMemoryMetrics", |
+ "Skia", |
+ "Sql", |
+ "V8Isolate", |
+ "WinHeap", |
nullptr // End of list marker. |
}; |
// A list of string names that are allowed for the memory allocator dumps in |
// background mode. |
const char* const kAllocatorDumpNameWhitelist[] = { |
- // TODO(ssid): Fill this list with dump names, crbug.com/613198. |
+ "blink_gc", |
+ "blink_gc/allocated_objects", |
+ "discardable", |
+ "discardable/child_", |
+ "dom_storage/cache_size", |
+ "dom_storage/session_storage_", |
+ "javaheap", |
+ "javaheap/allocated_objects", |
+ "leveldb/index_db/", |
+ "leveldb/value_store/Extensions.Database.Open.Settings/", |
+ "leveldb/value_store/Extensions.Database.Open.Rules/", |
+ "leveldb/value_store/Extensions.Database.Open.State/", |
+ "leveldb/value_store/Extensions.Database.Open/", |
+ "leveldb/value_store/Extensions.Database.Restore/", |
+ "leveldb/value_store/Extensions.Database.Value.Restore/", |
+ "malloc", |
+ "malloc/allocated_objects", |
+ "malloc/metadata_fragmentation_caches", |
+ "partition_alloc/allocated_objects", |
+ "partition_alloc/partitions", |
+ "partition_alloc/partitions/buffer", |
+ "partition_alloc/partitions/fast_malloc", |
+ "partition_alloc/partitions/layout", |
+ "skia/sk_glyph_cache", |
+ "skia/sk_resource_cache", |
+ "sqlite", |
+ "v/isolate_/heap_spaces", |
+ "v/isolate_/heap_spaces/code_space", |
+ "v/isolate_/heap_spaces/large_object_space", |
+ "v/isolate_/heap_spaces/map_space", |
+ "v/isolate_/heap_spaces/new_space", |
+ "v/isolate_/heap_spaces/old_space", |
+ "v/isolate_/heap_spaces/other_spaces", |
+ "v/isolate_/malloc", |
+ "v/isolate_/zapped_for_debug", |
+ "winheap", |
+ "winheap/allocated_objects", |
nullptr // End of list marker. |
}; |
@@ -61,8 +109,8 @@ bool IsMemoryAllocatorDumpNameWhitelisted(const std::string& name) { |
if (i + 1 < length && name[i] == '0' && name[i + 1] == 'x') { |
parsing_hex = true; |
++i; |
- } else if (isalpha(name[i]) || |
- (name[i] == '/' && stripped_str.back() != '/')) { |
+ } else if (isalpha(name[i]) || ((ispunct(name[i]) || isblank(name[i])) && |
+ stripped_str.back() != '/')) { |
// Do not add successive '/'(s) in |stripped_str|. |
stripped_str.push_back(name[i]); |
} |