| 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 |