OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include <algorithm> | |
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" | |
11 | |
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() { | |
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 } | |
41 | |
42 DevToolsClientHost::DevToolsClientHost() : close_listener_(NULL) { | |
43 g_instances.Get().push_back(this); | |
44 } | |
45 | |
46 void DevToolsClientHost::ForwardToDevToolsAgent(const IPC::Message& message) { | |
47 DevToolsManager::GetInstance()->ForwardToDevToolsAgent(this, message); | |
48 } | |
49 | |
50 void DevToolsClientHost::NotifyCloseListener() { | |
51 if (close_listener_) { | |
52 close_listener_->ClientHostClosing(this); | |
53 close_listener_ = NULL; | |
54 } | |
55 } | |
OLD | NEW |