#include "content/browser/devtools/protocol/memory_handler.h"
#include <cinttypes>
#include "base/functional/bind.h"
#include "base/memory/memory_pressure_listener.h"
#include "base/profiler/module_cache.h"
#include "base/sampling_heap_profiler/sampling_heap_profiler.h"
#include "base/strings/stringprintf.h"
#include "content/public/browser/child_process_host.h"
#include "content/public/browser/render_process_host.h"
namespace content {
namespace protocol {
namespace {
constexpr char kAnotherLeakDetectionInProgress[] = …;
constexpr char kNoProcessToDetectLeaksIn[] = …;
constexpr char kFailedToRunLeakDetection[] = …;
}
MemoryHandler::MemoryHandler()
: … { … }
MemoryHandler::~MemoryHandler() = default;
void MemoryHandler::Wire(UberDispatcher* dispatcher) { … }
void MemoryHandler::SetRenderer(int process_host_id,
RenderFrameHostImpl* frame_host) { … }
Response MemoryHandler::GetBrowserSamplingProfile(
std::unique_ptr<Memory::SamplingProfile>* out_profile) { … }
Response MemoryHandler::SetPressureNotificationsSuppressed(
bool suppressed) { … }
Response MemoryHandler::SimulatePressureNotification(
const std::string& level) { … }
void MemoryHandler::PrepareForLeakDetection(
std::unique_ptr<PrepareForLeakDetectionCallback> callback) { … }
void MemoryHandler::GetDOMCountersForLeakDetection(
std::unique_ptr<GetDOMCountersForLeakDetectionCallback> callback) { … }
void MemoryHandler::RequestLeakDetection(RenderProcessHost* process) { … }
void MemoryHandler::OnLeakDetectionComplete(
blink::mojom::LeakDetectionResultPtr result) { … }
void MemoryHandler::OnLeakDetectorIsGone() { … }
std::unique_ptr<protocol::Array<protocol::Memory::DOMCounter>>
MemoryHandler::GetDOMCounters(const blink::mojom::LeakDetectionResult& result) { … }
}
}