| // 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 |