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 a2628d9ed655f4a12ab81ceb7a0e491c3661c6ac..4e2cc606e9b8e04396ea06f6da46a75595fb76ae 100644 |
| --- a/base/trace_event/memory_dump_manager.cc |
| +++ b/base/trace_event/memory_dump_manager.cc |
| @@ -16,7 +16,6 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/threading/thread.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| -#include "base/timer/timer.h" |
|
Primiano Tucci (use gerrit)
2016/06/02 20:24:04
I think these are conflicts with your other CLs ri
ssid
2016/06/03 01:59:46
Oh I removed this intentionally because this is in
|
| #include "base/trace_event/heap_profiler.h" |
| #include "base/trace_event/heap_profiler_allocation_context_tracker.h" |
| #include "base/trace_event/heap_profiler_stack_frame_deduplicator.h" |
| @@ -24,6 +23,7 @@ |
| #include "base/trace_event/malloc_dump_provider.h" |
| #include "base/trace_event/memory_dump_provider.h" |
| #include "base/trace_event/memory_dump_session_state.h" |
| +#include "base/trace_event/memory_infra_background_whitelist.h" |
| #include "base/trace_event/process_memory_dump.h" |
| #include "base/trace_event/trace_event.h" |
| #include "base/trace_event/trace_event_argument.h" |
| @@ -49,15 +49,6 @@ const unsigned char kTraceEventArgTypes[] = {TRACE_VALUE_TYPE_CONVERTABLE}; |
| StaticAtomicSequenceNumber g_next_guid; |
| MemoryDumpManager* g_instance_for_testing = nullptr; |
| -// The names of dump providers whitelisted for background tracing. Dump |
| -// 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. |
| - nullptr, // End of list marker. |
| -}; |
| - |
| // Callback wrapper to hook upon the completion of RequestGlobalDump() and |
| // inject trace markers. |
| void OnGlobalDumpDone(MemoryDumpCallback wrapped_callback, |
| @@ -100,16 +91,6 @@ struct SessionStateConvertableProxy : public ConvertableToTraceFormat { |
| GetterFunctPtr const getter_function; |
| }; |
| -// Checks if the name is in the given |list|. Last element of the list should be |
| -// an empty string. |
| -bool IsNameInList(const char* name, const char* const* list) { |
| - for (size_t i = 0; list[i] != nullptr; ++i) { |
| - if (strcmp(name, list[i]) == 0) |
| - return true; |
| - } |
| - return false; |
| -} |
| - |
| } // namespace |
| // static |
| @@ -150,7 +131,6 @@ MemoryDumpManager::MemoryDumpManager() |
| : delegate_(nullptr), |
| is_coordinator_(false), |
| memory_tracing_enabled_(0), |
| - dump_provider_whitelist_(kDumpProviderWhitelist), |
| tracing_process_id_(kInvalidTracingProcessId), |
| dumper_registrations_ignored_for_testing_(false), |
| heap_profiling_enabled_(false) { |
| @@ -274,8 +254,7 @@ void MemoryDumpManager::RegisterDumpProviderInternal( |
| if (dumper_registrations_ignored_for_testing_) |
| return; |
| - bool whitelisted_for_background_mode = |
| - IsNameInList(name, dump_provider_whitelist_); |
| + bool whitelisted_for_background_mode = IsMemoryDumpProviderWhitelisted(name); |
| scoped_refptr<MemoryDumpProviderInfo> mdpinfo = |
| new MemoryDumpProviderInfo(mdp, name, std::move(task_runner), options, |
| whitelisted_for_background_mode); |
| @@ -561,9 +540,10 @@ void MemoryDumpManager::InvokeOnMemoryDump( |
| // process), non-zero when the coordinator process creates dumps on behalf |
| // of child processes (see crbug.com/461788). |
| ProcessId target_pid = mdpinfo->options.target_pid; |
| - ProcessMemoryDump* pmd = |
| - pmd_async_state->GetOrCreateMemoryDumpContainerForProcess(target_pid); |
| MemoryDumpArgs args = {pmd_async_state->req_args.level_of_detail}; |
| + ProcessMemoryDump* pmd = |
| + pmd_async_state->GetOrCreateMemoryDumpContainerForProcess(target_pid, |
| + args); |
| bool dump_successful = mdpinfo->dump_provider->OnMemoryDump(args, pmd); |
| mdpinfo->consecutive_failures = |
| dump_successful ? 0 : mdpinfo->consecutive_failures + 1; |
| @@ -770,11 +750,12 @@ MemoryDumpManager::ProcessMemoryDumpAsyncState::~ProcessMemoryDumpAsyncState() { |
| } |
| ProcessMemoryDump* MemoryDumpManager::ProcessMemoryDumpAsyncState:: |
| - GetOrCreateMemoryDumpContainerForProcess(ProcessId pid) { |
| + GetOrCreateMemoryDumpContainerForProcess(ProcessId pid, |
| + const MemoryDumpArgs& dump_args) { |
| auto iter = process_dumps.find(pid); |
| if (iter == process_dumps.end()) { |
| std::unique_ptr<ProcessMemoryDump> new_pmd( |
| - new ProcessMemoryDump(session_state)); |
| + new ProcessMemoryDump(session_state, dump_args)); |
| iter = process_dumps.insert(std::make_pair(pid, std::move(new_pmd))).first; |
| } |
| return iter->second.get(); |