Index: base/trace_event/memory_dump_manager.cc |
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc |
index 08684865cd47e4ce2e9b51b024f3c282c8a9df70..13e6054224bdb7acc72ea5684e75c2ce009d33ce 100644 |
--- a/base/trace_event/memory_dump_manager.cc |
+++ b/base/trace_event/memory_dump_manager.cc |
@@ -314,9 +314,12 @@ void MemoryDumpManager::RegisterDumpProviderInternal( |
return; |
bool whitelisted_for_background_mode = IsMemoryDumpProviderWhitelisted(name); |
hjd
2017/05/10 13:48:08
Shall I rename all the methods/variables named thi
Primiano Tucci (use gerrit)
2017/05/10 16:18:58
up to you. I think is worth a comment, explaining
hjd
2017/05/15 12:02:27
Done.
|
- scoped_refptr<MemoryDumpProviderInfo> mdpinfo = |
- new MemoryDumpProviderInfo(mdp, name, std::move(task_runner), options, |
- whitelisted_for_background_mode); |
+ bool whitelisted_for_summary_mode = |
+ IsMemoryDumpProviderWhitelistedForSummary(name); |
+ |
+ scoped_refptr<MemoryDumpProviderInfo> mdpinfo = new MemoryDumpProviderInfo( |
+ mdp, name, std::move(task_runner), options, |
+ whitelisted_for_background_mode, whitelisted_for_summary_mode); |
if (options.is_fast_polling_supported) { |
DCHECK(!mdpinfo->task_runner) << "MemoryDumpProviders capable of fast " |
@@ -556,6 +559,14 @@ void MemoryDumpManager::SetupNextMemoryDump( |
return SetupNextMemoryDump(std::move(pmd_async_state)); |
} |
+ // If we are in summary mode, we only need to invoke the providers |
+ // whitelisted for summary mode. |
+ if (pmd_async_state->req_args.dump_type == MemoryDumpType::SUMMARY_ONLY && |
+ !mdpinfo->whitelisted_for_summary_mode) { |
+ pmd_async_state->pending_dump_providers.pop_back(); |
+ return SetupNextMemoryDump(std::move(pmd_async_state)); |
+ } |
+ |
// If the dump provider did not specify a task runner affinity, dump on |
// |dump_thread_|. |
SequencedTaskRunner* task_runner = mdpinfo->task_runner.get(); |