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 "content/browser/devtools/worker_devtools_manager.h" | 5 #include "content/browser/devtools/worker_devtools_manager.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
12 #include "content/browser/devtools/devtools_manager_impl.h" | 12 #include "content/browser/devtools/devtools_manager_impl.h" |
13 #include "content/browser/devtools/devtools_protocol.h" | 13 #include "content/browser/devtools/devtools_protocol.h" |
14 #include "content/browser/devtools/devtools_protocol_constants.h" | 14 #include "content/browser/devtools/devtools_protocol_constants.h" |
15 #include "content/browser/devtools/ipc_devtools_agent_host.h" | 15 #include "content/browser/devtools/ipc_devtools_agent_host.h" |
| 16 #include "content/browser/devtools/shared_worker_devtools_manager.h" |
16 #include "content/browser/devtools/worker_devtools_message_filter.h" | 17 #include "content/browser/devtools/worker_devtools_message_filter.h" |
17 #include "content/browser/worker_host/worker_service_impl.h" | 18 #include "content/browser/worker_host/worker_service_impl.h" |
18 #include "content/common/devtools_messages.h" | 19 #include "content/common/devtools_messages.h" |
19 #include "content/public/browser/browser_thread.h" | 20 #include "content/public/browser/browser_thread.h" |
20 #include "content/public/browser/child_process_data.h" | 21 #include "content/public/browser/child_process_data.h" |
21 #include "content/public/common/process_type.h" | 22 #include "content/public/common/process_type.h" |
22 | 23 |
23 namespace content { | 24 namespace content { |
24 | 25 |
25 // Called on the UI thread. | 26 // Called on the UI thread. |
26 // static | 27 // static |
27 scoped_refptr<DevToolsAgentHost> DevToolsAgentHost::GetForWorker( | 28 scoped_refptr<DevToolsAgentHost> DevToolsAgentHost::GetForWorker( |
28 int worker_process_id, | 29 int worker_process_id, |
29 int worker_route_id) { | 30 int worker_route_id) { |
30 return WorkerDevToolsManager::GetDevToolsAgentHostForWorker( | 31 if (WorkerService::EmbeddedSharedWorkerEnabled()) { |
31 worker_process_id, | 32 return SharedWorkerDevToolsManager::GetDevToolsAgentHostForWorker( |
32 worker_route_id); | 33 worker_process_id, worker_route_id); |
| 34 } else { |
| 35 return WorkerDevToolsManager::GetDevToolsAgentHostForWorker( |
| 36 worker_process_id, worker_route_id); |
| 37 } |
33 } | 38 } |
34 | 39 |
35 namespace { | 40 namespace { |
36 | 41 |
37 typedef std::map<WorkerDevToolsManager::WorkerId, | 42 typedef std::map<WorkerDevToolsManager::WorkerId, |
38 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts; | 43 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts; |
39 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER; | 44 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER; |
40 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER; | 45 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER; |
41 | 46 |
42 } // namespace | 47 } // namespace |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 worker_url(url), | 205 worker_url(url), |
201 worker_name(name) {} | 206 worker_name(name) {} |
202 WorkerProcessHost* const host; | 207 WorkerProcessHost* const host; |
203 int const route_id; | 208 int const route_id; |
204 GURL worker_url; | 209 GURL worker_url; |
205 base::string16 worker_name; | 210 base::string16 worker_name; |
206 }; | 211 }; |
207 | 212 |
208 // static | 213 // static |
209 WorkerDevToolsManager* WorkerDevToolsManager::GetInstance() { | 214 WorkerDevToolsManager* WorkerDevToolsManager::GetInstance() { |
| 215 DCHECK(!WorkerService::EmbeddedSharedWorkerEnabled()); |
210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
211 return Singleton<WorkerDevToolsManager>::get(); | 217 return Singleton<WorkerDevToolsManager>::get(); |
212 } | 218 } |
213 | 219 |
214 // static | 220 // static |
215 DevToolsAgentHost* WorkerDevToolsManager::GetDevToolsAgentHostForWorker( | 221 DevToolsAgentHost* WorkerDevToolsManager::GetDevToolsAgentHostForWorker( |
216 int worker_process_id, | 222 int worker_process_id, |
217 int worker_route_id) { | 223 int worker_route_id) { |
| 224 DCHECK(!WorkerService::EmbeddedSharedWorkerEnabled()); |
218 WorkerId id(worker_process_id, worker_route_id); | 225 WorkerId id(worker_process_id, worker_route_id); |
219 AgentHosts::iterator it = g_agent_map.Get().find(id); | 226 AgentHosts::iterator it = g_agent_map.Get().find(id); |
220 if (it == g_agent_map.Get().end()) | 227 if (it == g_agent_map.Get().end()) |
221 return new WorkerDevToolsAgentHost(id); | 228 return new WorkerDevToolsAgentHost(id); |
222 return it->second; | 229 return it->second; |
223 } | 230 } |
224 | 231 |
225 WorkerDevToolsManager::WorkerDevToolsManager() { | 232 WorkerDevToolsManager::WorkerDevToolsManager() { |
226 } | 233 } |
227 | 234 |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second)); | 445 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second)); |
439 } | 446 } |
440 | 447 |
441 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() { | 448 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() { |
442 DetachedClientHosts::RemovePendingWorkerData(worker_id_); | 449 DetachedClientHosts::RemovePendingWorkerData(worker_id_); |
443 g_agent_map.Get().erase(worker_id_); | 450 g_agent_map.Get().erase(worker_id_); |
444 g_orphan_map.Get().erase(worker_id_); | 451 g_orphan_map.Get().erase(worker_id_); |
445 } | 452 } |
446 | 453 |
447 } // namespace content | 454 } // namespace content |
OLD | NEW |