OLD | NEW |
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/service_worker_devtools_manager.h" | 5 #include "content/browser/devtools/service_worker_devtools_manager.h" |
6 | 6 |
7 #include "content/browser/devtools/devtools_agent_host_impl.h" | 7 #include "content/browser/devtools/devtools_agent_host_impl.h" |
8 #include "content/browser/devtools/service_worker_devtools_agent_host.h" | 8 #include "content/browser/devtools/service_worker_devtools_agent_host.h" |
9 #include "content/public/browser/browser_thread.h" | 9 #include "content/public/browser/browser_thread.h" |
10 #include "content/public/browser/render_process_host.h" | 10 #include "content/public/browser/render_process_host.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 const ServiceWorkerIdentifier& service_worker_id, | 82 const ServiceWorkerIdentifier& service_worker_id, |
83 bool is_installed_version) { | 83 bool is_installed_version) { |
84 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 84 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
85 const WorkerId id(worker_process_id, worker_route_id); | 85 const WorkerId id(worker_process_id, worker_route_id); |
86 AgentHostMap::iterator it = FindExistingWorkerAgentHost(service_worker_id); | 86 AgentHostMap::iterator it = FindExistingWorkerAgentHost(service_worker_id); |
87 if (it == workers_.end()) { | 87 if (it == workers_.end()) { |
88 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = | 88 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = |
89 new ServiceWorkerDevToolsAgentHost(id, service_worker_id, | 89 new ServiceWorkerDevToolsAgentHost(id, service_worker_id, |
90 is_installed_version); | 90 is_installed_version); |
91 workers_[id] = host.get(); | 91 workers_[id] = host.get(); |
92 FOR_EACH_OBSERVER(Observer, observer_list_, WorkerCreated(host.get())); | 92 for (auto& observer : observer_list_) |
| 93 observer.WorkerCreated(host.get()); |
93 if (debug_service_worker_on_start_) | 94 if (debug_service_worker_on_start_) |
94 host->PauseForDebugOnStart(); | 95 host->PauseForDebugOnStart(); |
95 return host->IsPausedForDebugOnStart(); | 96 return host->IsPausedForDebugOnStart(); |
96 } | 97 } |
97 | 98 |
98 // Worker was restarted. | 99 // Worker was restarted. |
99 ServiceWorkerDevToolsAgentHost* agent_host = it->second; | 100 ServiceWorkerDevToolsAgentHost* agent_host = it->second; |
100 agent_host->WorkerRestarted(id); | 101 agent_host->WorkerRestarted(id); |
101 workers_.erase(it); | 102 workers_.erase(it); |
102 workers_[id] = agent_host; | 103 workers_[id] = agent_host; |
103 | 104 |
104 return agent_host->IsAttached(); | 105 return agent_host->IsAttached(); |
105 } | 106 } |
106 | 107 |
107 void ServiceWorkerDevToolsManager::WorkerReadyForInspection( | 108 void ServiceWorkerDevToolsManager::WorkerReadyForInspection( |
108 int worker_process_id, | 109 int worker_process_id, |
109 int worker_route_id) { | 110 int worker_route_id) { |
110 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 111 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
111 const WorkerId id(worker_process_id, worker_route_id); | 112 const WorkerId id(worker_process_id, worker_route_id); |
112 AgentHostMap::iterator it = workers_.find(id); | 113 AgentHostMap::iterator it = workers_.find(id); |
113 if (it == workers_.end()) | 114 if (it == workers_.end()) |
114 return; | 115 return; |
115 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; | 116 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; |
116 host->WorkerReadyForInspection(); | 117 host->WorkerReadyForInspection(); |
117 FOR_EACH_OBSERVER(Observer, observer_list_, | 118 for (auto& observer : observer_list_) |
118 WorkerReadyForInspection(host.get())); | 119 observer.WorkerReadyForInspection(host.get()); |
119 | 120 |
120 // Then bring up UI for the ones not picked by other clients. | 121 // Then bring up UI for the ones not picked by other clients. |
121 if (host->IsPausedForDebugOnStart() && !host->IsAttached()) | 122 if (host->IsPausedForDebugOnStart() && !host->IsAttached()) |
122 static_cast<DevToolsAgentHostImpl*>(host.get())->Inspect(); | 123 static_cast<DevToolsAgentHostImpl*>(host.get())->Inspect(); |
123 } | 124 } |
124 | 125 |
125 void ServiceWorkerDevToolsManager::WorkerVersionInstalled(int worker_process_id, | 126 void ServiceWorkerDevToolsManager::WorkerVersionInstalled(int worker_process_id, |
126 int worker_route_id) { | 127 int worker_route_id) { |
127 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 128 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
128 const WorkerId id(worker_process_id, worker_route_id); | 129 const WorkerId id(worker_process_id, worker_route_id); |
129 AgentHostMap::iterator it = workers_.find(id); | 130 AgentHostMap::iterator it = workers_.find(id); |
130 if (it == workers_.end()) | 131 if (it == workers_.end()) |
131 return; | 132 return; |
132 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; | 133 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; |
133 host->WorkerVersionInstalled(); | 134 host->WorkerVersionInstalled(); |
134 FOR_EACH_OBSERVER(Observer, observer_list_, | 135 for (auto& observer : observer_list_) |
135 WorkerVersionInstalled(host.get())); | 136 observer.WorkerVersionInstalled(host.get()); |
136 } | 137 } |
137 | 138 |
138 void ServiceWorkerDevToolsManager::WorkerVersionDoomed(int worker_process_id, | 139 void ServiceWorkerDevToolsManager::WorkerVersionDoomed(int worker_process_id, |
139 int worker_route_id) { | 140 int worker_route_id) { |
140 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 141 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
141 const WorkerId id(worker_process_id, worker_route_id); | 142 const WorkerId id(worker_process_id, worker_route_id); |
142 AgentHostMap::iterator it = workers_.find(id); | 143 AgentHostMap::iterator it = workers_.find(id); |
143 if (it == workers_.end()) | 144 if (it == workers_.end()) |
144 return; | 145 return; |
145 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; | 146 scoped_refptr<ServiceWorkerDevToolsAgentHost> host = it->second; |
146 host->WorkerVersionDoomed(); | 147 host->WorkerVersionDoomed(); |
147 FOR_EACH_OBSERVER(Observer, observer_list_, WorkerVersionDoomed(host.get())); | 148 for (auto& observer : observer_list_) |
| 149 observer.WorkerVersionDoomed(host.get()); |
148 } | 150 } |
149 | 151 |
150 void ServiceWorkerDevToolsManager::WorkerDestroyed(int worker_process_id, | 152 void ServiceWorkerDevToolsManager::WorkerDestroyed(int worker_process_id, |
151 int worker_route_id) { | 153 int worker_route_id) { |
152 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 154 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
153 const WorkerId id(worker_process_id, worker_route_id); | 155 const WorkerId id(worker_process_id, worker_route_id); |
154 AgentHostMap::iterator it = workers_.find(id); | 156 AgentHostMap::iterator it = workers_.find(id); |
155 if (it == workers_.end()) | 157 if (it == workers_.end()) |
156 return; | 158 return; |
157 scoped_refptr<WorkerDevToolsAgentHost> agent_host(it->second); | 159 scoped_refptr<WorkerDevToolsAgentHost> agent_host(it->second); |
158 agent_host->WorkerDestroyed(); | 160 agent_host->WorkerDestroyed(); |
159 FOR_EACH_OBSERVER(Observer, observer_list_, WorkerDestroyed(it->second)); | 161 for (auto& observer : observer_list_) |
| 162 observer.WorkerDestroyed(it->second); |
160 } | 163 } |
161 | 164 |
162 void ServiceWorkerDevToolsManager::RemoveInspectedWorkerData(WorkerId id) { | 165 void ServiceWorkerDevToolsManager::RemoveInspectedWorkerData(WorkerId id) { |
163 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 166 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
164 workers_.erase(id); | 167 workers_.erase(id); |
165 } | 168 } |
166 | 169 |
167 void ServiceWorkerDevToolsManager::AddObserver(Observer* observer) { | 170 void ServiceWorkerDevToolsManager::AddObserver(Observer* observer) { |
168 observer_list_.AddObserver(observer); | 171 observer_list_.AddObserver(observer); |
169 } | 172 } |
(...skipping 23 matching lines...) Expand all Loading... |
193 break; | 196 break; |
194 } | 197 } |
195 return it; | 198 return it; |
196 } | 199 } |
197 | 200 |
198 void ServiceWorkerDevToolsManager::ResetForTesting() { | 201 void ServiceWorkerDevToolsManager::ResetForTesting() { |
199 workers_.clear(); | 202 workers_.clear(); |
200 } | 203 } |
201 | 204 |
202 } // namespace content | 205 } // namespace content |
OLD | NEW |