#include "services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h"
#include "base/containers/flat_map.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/not_fatal_until.h"
#include "base/synchronization/lock.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/memory_dump_request_args.h"
#include "build/build_config.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h"
#include "services/resource_coordinator/public/mojom/memory_instrumentation/memory_instrumentation.mojom.h"
namespace memory_instrumentation {
void ClientProcessImpl::CreateInstance(
mojo::PendingReceiver<mojom::ClientProcess> receiver,
mojo::PendingRemote<mojom::Coordinator> coordinator,
bool is_browser_process) { … }
ClientProcessImpl::ClientProcessImpl(
mojo::PendingReceiver<mojom::ClientProcess> receiver,
mojo::PendingRemote<mojom::Coordinator> coordinator,
bool is_browser_process,
bool initialize_memory_instrumentation)
: … { … }
ClientProcessImpl::~ClientProcessImpl() = default;
void ClientProcessImpl::RequestChromeMemoryDump(
const base::trace_event::MemoryDumpRequestArgs& args,
RequestChromeMemoryDumpCallback callback) { … }
void ClientProcessImpl::OnChromeMemoryDumpDone(
bool success,
uint64_t dump_guid,
std::unique_ptr<base::trace_event::ProcessMemoryDump> process_memory_dump) { … }
void ClientProcessImpl::RequestGlobalMemoryDump_NoCallback(
base::trace_event::MemoryDumpType dump_type,
base::trace_event::MemoryDumpLevelOfDetail level_of_detail) { … }
void ClientProcessImpl::RequestOSMemoryDump(
mojom::MemoryMapOption mmap_option,
const std::vector<base::ProcessId>& pids,
RequestOSMemoryDumpCallback callback) { … }
void ClientProcessImpl::PerformOSMemoryDump(OSMemoryDumpArgs args) { … }
ClientProcessImpl::OSMemoryDumpArgs::OSMemoryDumpArgs() = default;
ClientProcessImpl::OSMemoryDumpArgs::OSMemoryDumpArgs(OSMemoryDumpArgs&&) =
default;
ClientProcessImpl::OSMemoryDumpArgs::~OSMemoryDumpArgs() = default;
}