Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / content / browser / devtools / devtools_manager.cc
blob8b269b265fdd89139337633dad2b80e826f3aed2
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/browser/devtools/devtools_manager.h"
7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h"
9 #include "content/browser/devtools/devtools_agent_host_impl.h"
10 #include "content/browser/devtools/devtools_netlog_observer.h"
11 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/content_browser_client.h"
14 namespace content {
16 // static
17 DevToolsManager* DevToolsManager::GetInstance() {
18 return base::Singleton<DevToolsManager>::get();
21 DevToolsManager::DevToolsManager()
22 : delegate_(GetContentClient()->browser()->GetDevToolsManagerDelegate()),
23 attached_hosts_count_(0) {
26 DevToolsManager::~DevToolsManager() {
27 DCHECK(!attached_hosts_count_);
30 void DevToolsManager::AgentHostStateChanged(
31 DevToolsAgentHostImpl* agent_host, bool attached) {
32 if (attached) {
33 if (!attached_hosts_count_) {
34 BrowserThread::PostTask(
35 BrowserThread::IO,
36 FROM_HERE,
37 base::Bind(&DevToolsNetLogObserver::Attach));
39 ++attached_hosts_count_;
40 } else {
41 --attached_hosts_count_;
42 if (!attached_hosts_count_) {
43 BrowserThread::PostTask(
44 BrowserThread::IO,
45 FROM_HERE,
46 base::Bind(&DevToolsNetLogObserver::Detach));
51 } // namespace content