OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <algorithm> | 5 #include "content/browser/debugger/devtools_client_host.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | |
8 #include "base/logging.h" | |
9 #include "content/browser/debugger/devtools_client_host.h" | |
10 #include "content/browser/debugger/devtools_manager.h" | 7 #include "content/browser/debugger/devtools_manager.h" |
11 | 8 |
12 typedef std::vector<DevToolsClientHost*> DevToolsClientHostList; | |
13 namespace { | |
14 base::LazyInstance<DevToolsClientHostList, | |
15 base::LeakyLazyInstanceTraits<DevToolsClientHostList> > | |
16 g_instances = LAZY_INSTANCE_INITIALIZER; | |
17 } // namespace | |
18 | |
19 // static | |
20 DevToolsClientHost* DevToolsClientHost::FindOwnerClientHost( | |
21 RenderViewHost* client_rvh) { | |
22 for (DevToolsClientHostList::iterator it = g_instances.Get().begin(); | |
23 it != g_instances.Get().end(); ++it) { | |
24 if ((*it)->GetClientRenderViewHost() == client_rvh) | |
25 return *it; | |
26 } | |
27 return NULL; | |
28 } | |
29 | |
30 DevToolsClientHost::~DevToolsClientHost() { | 9 DevToolsClientHost::~DevToolsClientHost() { |
31 DevToolsClientHostList::iterator it = std::find(g_instances.Get().begin(), | |
32 g_instances.Get().end(), | |
33 this); | |
34 DCHECK(it != g_instances.Get().end()); | |
35 g_instances.Get().erase(it); | |
36 } | |
37 | |
38 RenderViewHost* DevToolsClientHost::GetClientRenderViewHost() { | |
39 return NULL; | |
40 } | 10 } |
41 | 11 |
42 DevToolsClientHost::DevToolsClientHost() : close_listener_(NULL) { | 12 DevToolsClientHost::DevToolsClientHost() : close_listener_(NULL) { |
43 g_instances.Get().push_back(this); | |
44 } | 13 } |
45 | 14 |
46 void DevToolsClientHost::ForwardToDevToolsAgent(const IPC::Message& message) { | 15 void DevToolsClientHost::ForwardToDevToolsAgent(const IPC::Message& message) { |
47 DevToolsManager::GetInstance()->ForwardToDevToolsAgent(this, message); | 16 DevToolsManager::GetInstance()->ForwardToDevToolsAgent(this, message); |
48 } | 17 } |
49 | 18 |
50 void DevToolsClientHost::NotifyCloseListener() { | 19 void DevToolsClientHost::NotifyCloseListener() { |
51 if (close_listener_) { | 20 if (close_listener_) { |
52 close_listener_->ClientHostClosing(this); | 21 close_listener_->ClientHostClosing(this); |
53 close_listener_ = NULL; | 22 close_listener_ = NULL; |
54 } | 23 } |
55 } | 24 } |
OLD | NEW |