|  | // Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ | 
|  | #define BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ | 
|  |  | 
|  | #include "base/bind.h" | 
|  | #include "base/trace_event/memory_dump_manager.h" | 
|  | #include "base/trace_event/memory_dump_request_args.h" | 
|  |  | 
|  | namespace base { | 
|  | namespace trace_event { | 
|  |  | 
|  | void RequestGlobalDumpForInProcessTesting( | 
|  | base::trace_event::MemoryDumpType dump_type, | 
|  | base::trace_event::MemoryDumpLevelOfDetail level_of_detail) { | 
|  | MemoryDumpRequestArgs local_args = {0 /* dump_guid */, dump_type, | 
|  | level_of_detail}; | 
|  | MemoryDumpManager::GetInstance()->CreateProcessDump( | 
|  | local_args, ProcessMemoryDumpCallback()); | 
|  | }; | 
|  |  | 
|  | // Short circuits the RequestGlobalDumpFunction() to CreateProcessDump(), | 
|  | // effectively allowing to use both in unittests with the same behavior. | 
|  | // Unittests are in-process only and don't require all the multi-process | 
|  | // dump handshaking (which would require bits outside of base). | 
|  | void InitializeMemoryDumpManagerForInProcessTesting(bool is_coordinator) { | 
|  | MemoryDumpManager* instance = MemoryDumpManager::GetInstance(); | 
|  | instance->set_dumper_registrations_ignored_for_testing(true); | 
|  | instance->Initialize(BindRepeating(&RequestGlobalDumpForInProcessTesting), | 
|  | is_coordinator); | 
|  | } | 
|  |  | 
|  | }  // namespace trace_event | 
|  | }  // namespace base | 
|  |  | 
|  | #endif  // BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ |