Chromium Code Reviews| 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(); |