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

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

Issue 349033009: DevTools: Added service workers to chrome://inspect/#devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added GetOrCreateAllHosts Created 6 years, 5 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"
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 } 38 }
39 39
40 namespace { 40 namespace {
41 41
42 typedef std::map<WorkerDevToolsManager::WorkerId, 42 typedef std::map<WorkerDevToolsManager::WorkerId,
43 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts; 43 WorkerDevToolsManager::WorkerDevToolsAgentHost*> AgentHosts;
44 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER; 44 base::LazyInstance<AgentHosts>::Leaky g_agent_map = LAZY_INSTANCE_INITIALIZER;
45 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER; 45 base::LazyInstance<AgentHosts>::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER;
46 46
47 } // namespace 47 void CreateSharedWorkers(
48 const DevToolsAgentHost::Callback& callback,
49 const std::vector<WorkerService::WorkerInfo>& workers) {
50 DevToolsAgentHost::List result;
51 for (std::vector<WorkerService::WorkerInfo>::const_iterator it =
52 workers.begin(); it != workers.end(); ++it) {
53 result.push_back(WorkerDevToolsManager::GetDevToolsAgentHostForWorker(
54 it->process_id, it->route_id));
55 }
56 callback.Run(result);
57 }
58
59 void GetSharedWorkersInfoOnIO(const DevToolsAgentHost::Callback& callback) {
60 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
61 base::Bind(&CreateSharedWorkers, callback,
62 WorkerService::GetInstance()->GetWorkers()));
63 }
64
65 } // namespace
66
67 void CollectAllHosts(const DevToolsAgentHost::Callback& callback,
68 const DevToolsAgentHost::List& workers) {
69 std::vector<RenderViewHost*> rvhs =
70 DevToolsAgentHost::GetValidRenderViewHosts();
71 DevToolsAgentHost::List result;
72 for (std::vector<RenderViewHost*>::iterator it = rvhs.begin();
73 it != rvhs.end(); ++it) {
74 result.push_back(DevToolsAgentHost::GetOrCreateFor(*it));
75 }
76 result.insert(result.end(), workers.begin(), workers.end());
77 callback.Run(result);
78 }
79
80 // static
81 void DevToolsAgentHost::GetOrCreateAllHosts(
dgozman 2014/07/14 11:17:24 I think, this code should be in devtools_agent_hos
vkuzkokov 2014/07/14 15:31:33 Done.
82 const DevToolsAgentHost::Callback& callback) {
83 if (WorkerService::EmbeddedSharedWorkerEnabled()) {
84 EmbeddedWorkerDevToolsManager::GetInstance()->GetOrCreateAllHosts(
85 base::Bind(&CollectAllHosts, callback));
86 } else {
87 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
88 base::Bind(&GetSharedWorkersInfoOnIO,
89 base::Bind(&CollectAllHosts, callback)));
90 }
91 }
48 92
49 struct WorkerDevToolsManager::TerminatedInspectedWorker { 93 struct WorkerDevToolsManager::TerminatedInspectedWorker {
50 TerminatedInspectedWorker(WorkerId id, 94 TerminatedInspectedWorker(WorkerId id,
51 const GURL& url, 95 const GURL& url,
52 const base::string16& name) 96 const base::string16& name)
53 : old_worker_id(id), 97 : old_worker_id(id),
54 worker_url(url), 98 worker_url(url),
55 worker_name(name) {} 99 worker_name(name) {}
56 WorkerId old_worker_id; 100 WorkerId old_worker_id;
57 GURL worker_url; 101 GURL worker_url;
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second)); 488 process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second));
445 } 489 }
446 490
447 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() { 491 WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() {
448 DetachedClientHosts::RemovePendingWorkerData(worker_id_); 492 DetachedClientHosts::RemovePendingWorkerData(worker_id_);
449 g_agent_map.Get().erase(worker_id_); 493 g_agent_map.Get().erase(worker_id_);
450 g_orphan_map.Get().erase(worker_id_); 494 g_orphan_map.Get().erase(worker_id_);
451 } 495 }
452 496
453 } // namespace content 497 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698