blob: 89286b06aa40e9fb98565198851cacb2bd4d8d0b [file]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/devtools/devtools_manager.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/memory_dump_manager.h"
#include "content/browser/devtools/devtools_session.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/common/content_client.h"
namespace content {
// static
DevToolsManager* DevToolsManager::GetInstance() {
return base::Singleton<DevToolsManager>::get();
}
DevToolsManager::DevToolsManager()
: delegate_(
GetContentClient()->browser()->CreateDevToolsManagerDelegate()) {
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
this, "DevToolsManager",
base::SingleThreadTaskRunner::GetCurrentDefault());
}
void DevToolsManager::ShutdownForTests() {
base::Singleton<DevToolsManager>::OnExit(nullptr);
}
DevToolsManager::~DevToolsManager() {
base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider(
this);
}
bool DevToolsManager::OnMemoryDump(
const base::trace_event::MemoryDumpArgs& args,
base::trace_event::ProcessMemoryDump* pmd) {
auto* dump = pmd->CreateAllocatorDump("devtools/sessions");
dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount,
base::trace_event::MemoryAllocatorDump::kUnitsObjects,
DevToolsSession::GetRootSessionCount());
return true;
}
} // namespace content