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"
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"
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
) {
33 if (!attached_hosts_count_
) {
34 BrowserThread::PostTask(
37 base::Bind(&DevToolsNetLogObserver::Attach
));
39 ++attached_hosts_count_
;
41 --attached_hosts_count_
;
42 if (!attached_hosts_count_
) {
43 BrowserThread::PostTask(
46 base::Bind(&DevToolsNetLogObserver::Detach
));
51 } // namespace content