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

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

Issue 985343002: DevTools: remove the WorkerDevToolsManager base - implementations are diverging. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments addressed. Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/shared_worker_devtools_manager.h" 5 #include "content/browser/devtools/shared_worker_devtools_manager.h"
6 6
7 #include "content/browser/devtools/devtools_manager.h" 7 #include "content/browser/devtools/devtools_manager.h"
8 #include "content/browser/devtools/shared_worker_devtools_agent_host.h" 8 #include "content/browser/devtools/shared_worker_devtools_agent_host.h"
9 #include "content/browser/shared_worker/shared_worker_instance.h" 9 #include "content/browser/shared_worker/shared_worker_instance.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
11 11
12 namespace content { 12 namespace content {
13 13
14 // static 14 // static
15 SharedWorkerDevToolsManager* SharedWorkerDevToolsManager::GetInstance() { 15 SharedWorkerDevToolsManager* SharedWorkerDevToolsManager::GetInstance() {
16 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 16 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
17 return Singleton<SharedWorkerDevToolsManager>::get(); 17 return Singleton<SharedWorkerDevToolsManager>::get();
18 } 18 }
19 19
20 DevToolsAgentHostImpl*
21 SharedWorkerDevToolsManager::GetDevToolsAgentHostForWorker(
22 int worker_process_id,
23 int worker_route_id) {
24 AgentHostMap::iterator it = workers_.find(
25 WorkerId(worker_process_id, worker_route_id));
26 return it == workers_.end() ? NULL : it->second;
27 }
28
29 void SharedWorkerDevToolsManager::AddAllAgentHosts(
30 DevToolsAgentHost::List* result) {
31 for (auto& worker : workers_) {
32 if (!worker.second->IsTerminated())
33 result->push_back(worker.second);
34 }
35 }
36
20 bool SharedWorkerDevToolsManager::WorkerCreated( 37 bool SharedWorkerDevToolsManager::WorkerCreated(
21 int worker_process_id, 38 int worker_process_id,
22 int worker_route_id, 39 int worker_route_id,
23 const SharedWorkerInstance& instance) { 40 const SharedWorkerInstance& instance) {
24 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 41 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
25 const WorkerId id(worker_process_id, worker_route_id); 42 const WorkerId id(worker_process_id, worker_route_id);
26 AgentHostMap::iterator it = FindExistingWorkerAgentHost(instance); 43 AgentHostMap::iterator it =
27 if (it == workers().end()) { 44 FindExistingWorkerAgentHost(instance);
28 WorkerDevToolsManager::WorkerCreated( 45 if (it == workers_.end()) {
29 id, 46 workers_[id] = new SharedWorkerDevToolsAgentHost(id, instance);
30 new SharedWorkerDevToolsAgentHost(id, instance)); 47 DevToolsManager::GetInstance()->AgentHostChanged(workers_[id]);
31 return false; 48 return false;
32 } 49 }
33 WorkerRestarted(id, it); 50
51 // Worker restarted.
52 SharedWorkerDevToolsAgentHost* agent_host = it->second;
53 agent_host->WorkerRestarted(id);
54 workers_.erase(it);
55 workers_[id] = agent_host;
56 DevToolsManager::GetInstance()->AgentHostChanged(agent_host);
34 return true; 57 return true;
35 } 58 }
36 59
37 SharedWorkerDevToolsManager::AgentHostMap::iterator 60 void SharedWorkerDevToolsManager::WorkerReadyForInspection(
38 SharedWorkerDevToolsManager::FindExistingWorkerAgentHost( 61 int worker_process_id,
39 const SharedWorkerInstance& instance) { 62 int worker_route_id) {
40 AgentHostMap::iterator it = workers().begin(); 63 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
41 for (; it != workers().end(); ++it) { 64 const WorkerId id(worker_process_id, worker_route_id);
42 if (static_cast<SharedWorkerDevToolsAgentHost*>( 65 AgentHostMap::iterator it = workers_.find(id);
43 it->second)->Matches(instance)) 66 DCHECK(it != workers_.end());
44 break; 67 it->second->WorkerReadyForInspection();
45 }
46 return it;
47 } 68 }
48 69
70 void SharedWorkerDevToolsManager::WorkerDestroyed(
71 int worker_process_id,
72 int worker_route_id) {
73 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
74 const WorkerId id(worker_process_id, worker_route_id);
75 AgentHostMap::iterator it = workers_.find(id);
76 DCHECK(it != workers_.end());
77 scoped_refptr<SharedWorkerDevToolsAgentHost> agent_host(it->second);
78 agent_host->WorkerDestroyed();
79 DevToolsManager::GetInstance()->AgentHostChanged(agent_host);
80 }
81
82 void SharedWorkerDevToolsManager::RemoveInspectedWorkerData(WorkerId id) {
83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
84 workers_.erase(id);
85 }
49 SharedWorkerDevToolsManager::SharedWorkerDevToolsManager() { 86 SharedWorkerDevToolsManager::SharedWorkerDevToolsManager() {
50 } 87 }
51 88
52 SharedWorkerDevToolsManager::~SharedWorkerDevToolsManager() { 89 SharedWorkerDevToolsManager::~SharedWorkerDevToolsManager() {
53 } 90 }
54 91
92 SharedWorkerDevToolsManager::AgentHostMap::iterator
93 SharedWorkerDevToolsManager::FindExistingWorkerAgentHost(
94 const SharedWorkerInstance& instance) {
95 AgentHostMap::iterator it = workers_.begin();
96 for (; it != workers_.end(); ++it) {
97 if (it->second->Matches(instance))
98 break;
99 }
100 return it;
101 }
102
103 void SharedWorkerDevToolsManager::ResetForTesting() {
104 workers_.clear();
105 }
106
107
55 } // namespace content 108 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698