Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1579)

Side by Side Diff: content/browser/devtools/worker_devtools_manager.cc

Issue 196503005: Make DevTools support for the embedded SharedWorker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Introduce SharedWorkerDevToolsManager Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 // Called on the UI thread. 40 // Called on the UI thread.
36 // static 41 // static
37 bool DevToolsAgentHost::HasForWorker( 42 bool DevToolsAgentHost::HasForWorker(
38 int worker_process_id, 43 int worker_process_id,
39 int worker_route_id) { 44 int worker_route_id) {
40 return WorkerDevToolsManager::HasDevToolsAgentHostForWorker( 45 if (WorkerService::EmbeddedSharedWorkerEnabled()) {
41 worker_process_id, 46 return SharedWorkerDevToolsManager::HasDevToolsAgentHostForWorker(
42 worker_route_id); 47 worker_process_id, worker_route_id);
48 } else {
49 return WorkerDevToolsManager::HasDevToolsAgentHostForWorker(
50 worker_process_id, worker_route_id);
51 }
43 } 52 }
44 53
45 namespace { 54 namespace {
46 55
47 typedef std::map<WorkerDevToolsManager::WorkerId, 56 typedef std::map<WorkerDevToolsManager::WorkerId,
48 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts; 57 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts;
49 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER; 58 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER;
50 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER; 59 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER;
51 60
52 } // namespace 61 } // namespace
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 worker_url(url), 219 worker_url(url),
211 worker_name(name) {} 220 worker_name(name) {}
212 WorkerProcessHost* const host; 221 WorkerProcessHost* const host;
213 int const route_id; 222 int const route_id;
214 GURL worker_url; 223 GURL worker_url;
215 base::string16 worker_name; 224 base::string16 worker_name;
216 }; 225 };
217 226
218 // static 227 // static
219 WorkerDevToolsManager* WorkerDevToolsManager::GetInstance() { 228 WorkerDevToolsManager* WorkerDevToolsManager::GetInstance() {
229 DCHECK(!WorkerService::EmbeddedSharedWorkerEnabled());
220 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 230 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
221 return Singleton<WorkerDevToolsManager>::get(); 231 return Singleton<WorkerDevToolsManager>::get();
222 } 232 }
223 233
224 // static 234 // static
225 DevToolsAgentHost* WorkerDevToolsManager::GetDevToolsAgentHostForWorker( 235 DevToolsAgentHost* WorkerDevToolsManager::GetDevToolsAgentHostForWorker(
226 int worker_process_id, 236 int worker_process_id,
227 int worker_route_id) { 237 int worker_route_id) {
238 DCHECK(!WorkerService::EmbeddedSharedWorkerEnabled());
228 WorkerId id(worker_process_id, worker_route_id); 239 WorkerId id(worker_process_id, worker_route_id);
229 AgentHosts::iterator it = g_agent_map.Get().find(id); 240 AgentHosts::iterator it = g_agent_map.Get().find(id);
230 if (it == g_agent_map.Get().end()) 241 if (it == g_agent_map.Get().end())
231 return new WorkerDevToolsAgentHost(id); 242 return new WorkerDevToolsAgentHost(id);
232 return it->second; 243 return it->second;
233 } 244 }
234 245
235 // static 246 // static
236 bool WorkerDevToolsManager::HasDevToolsAgentHostForWorker( 247 bool WorkerDevToolsManager::HasDevToolsAgentHostForWorker(
237 int worker_process_id, 248 int worker_process_id,
238 int worker_route_id) { 249 int worker_route_id) {
250 DCHECK(!WorkerService::EmbeddedSharedWorkerEnabled());
239 WorkerId id(worker_process_id, worker_route_id); 251 WorkerId id(worker_process_id, worker_route_id);
240 return g_agent_map.Get().find(id) != g_agent_map.Get().end(); 252 return g_agent_map.Get().find(id) != g_agent_map.Get().end();
241 } 253 }
242 254
243 WorkerDevToolsManager::WorkerDevToolsManager() { 255 WorkerDevToolsManager::WorkerDevToolsManager() {
244 } 256 }
245 257
246 WorkerDevToolsManager::~WorkerDevToolsManager() { 258 WorkerDevToolsManager::~WorkerDevToolsManager() {
247 } 259 }
248 260
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second)); 468 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second));
457 } 469 }
458 470
459 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() { 471 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() {
460 DetachedClientHosts::RemovePendingWorkerData(worker_id_); 472 DetachedClientHosts::RemovePendingWorkerData(worker_id_);
461 g_agent_map.Get().erase(worker_id_); 473 g_agent_map.Get().erase(worker_id_);
462 g_orphan_map.Get().erase(worker_id_); 474 g_orphan_map.Get().erase(worker_id_);
463 } 475 }
464 476
465 } // namespace content 477 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698