| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/protocol/service_worker_handler.h" | 5 #include "content/browser/devtools/protocol/service_worker_handler.h" | 
| 6 | 6 | 
| 7 #include "base/bind.h" | 7 #include "base/bind.h" | 
| 8 #include "base/containers/scoped_ptr_hash_map.h" | 8 #include "base/containers/scoped_ptr_hash_map.h" | 
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" | 
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 72     case content::ServiceWorkerVersion::ACTIVATED: | 72     case content::ServiceWorkerVersion::ACTIVATED: | 
| 73       return kServiceWorkerVersionStatusActivated; | 73       return kServiceWorkerVersionStatusActivated; | 
| 74     case content::ServiceWorkerVersion::REDUNDANT: | 74     case content::ServiceWorkerVersion::REDUNDANT: | 
| 75       return kServiceWorkerVersionStatusRedundant; | 75       return kServiceWorkerVersionStatusRedundant; | 
| 76   } | 76   } | 
| 77   return ""; | 77   return ""; | 
| 78 } | 78 } | 
| 79 | 79 | 
| 80 scoped_refptr<ServiceWorkerVersion> CreateVersionDictionaryValue( | 80 scoped_refptr<ServiceWorkerVersion> CreateVersionDictionaryValue( | 
| 81     const ServiceWorkerVersionInfo& version_info) { | 81     const ServiceWorkerVersionInfo& version_info) { | 
|  | 82   std::string workerId = ""; | 
|  | 83   DevToolsAgentHostImpl* agent = | 
|  | 84       ServiceWorkerDevToolsManager::GetInstance() | 
|  | 85           ->GetDevToolsAgentHostForWorker(version_info.process_id, | 
|  | 86                                           version_info.devtools_agent_route_id); | 
|  | 87   if (agent) | 
|  | 88     workerId = agent->GetId(); | 
| 82   scoped_refptr<ServiceWorkerVersion> version( | 89   scoped_refptr<ServiceWorkerVersion> version( | 
| 83       ServiceWorkerVersion::Create() | 90       ServiceWorkerVersion::Create() | 
| 84           ->set_version_id(base::Int64ToString(version_info.version_id)) | 91           ->set_version_id(base::Int64ToString(version_info.version_id)) | 
| 85           ->set_registration_id( | 92           ->set_registration_id( | 
| 86                 base::Int64ToString(version_info.registration_id)) | 93                 base::Int64ToString(version_info.registration_id)) | 
| 87           ->set_script_url(version_info.script_url.spec()) | 94           ->set_script_url(version_info.script_url.spec()) | 
| 88           ->set_running_status( | 95           ->set_running_status( | 
| 89                 GetVersionRunningStatusString(version_info.running_status)) | 96                 GetVersionRunningStatusString(version_info.running_status)) | 
| 90           ->set_status(GetVersionStatusString(version_info.status)) | 97           ->set_status(GetVersionStatusString(version_info.status)) | 
| 91           ->set_script_last_modified( | 98           ->set_script_last_modified( | 
| 92                 version_info.script_last_modified.ToDoubleT()) | 99                 version_info.script_last_modified.ToDoubleT()) | 
| 93           ->set_script_response_time( | 100           ->set_script_response_time( | 
| 94               version_info.script_response_time.ToDoubleT())); | 101                 version_info.script_response_time.ToDoubleT()) | 
|  | 102           ->set_worker_id(workerId)); | 
| 95   return version; | 103   return version; | 
| 96 } | 104 } | 
| 97 | 105 | 
| 98 scoped_refptr<ServiceWorkerRegistration> CreateRegistrationDictionaryValue( | 106 scoped_refptr<ServiceWorkerRegistration> CreateRegistrationDictionaryValue( | 
| 99     const ServiceWorkerRegistrationInfo& registration_info) { | 107     const ServiceWorkerRegistrationInfo& registration_info) { | 
| 100   scoped_refptr<ServiceWorkerRegistration> registration( | 108   scoped_refptr<ServiceWorkerRegistration> registration( | 
| 101       ServiceWorkerRegistration::Create() | 109       ServiceWorkerRegistration::Create() | 
| 102           ->set_registration_id( | 110           ->set_registration_id( | 
| 103                 base::Int64ToString(registration_info.registration_id)) | 111                 base::Int64ToString(registration_info.registration_id)) | 
| 104           ->set_scope_url(registration_info.pattern.spec()) | 112           ->set_scope_url(registration_info.pattern.spec()) | 
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 331   BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 339   BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 
| 332                           base::Bind(&StopServiceWorkerOnIO, context_, id)); | 340                           base::Bind(&StopServiceWorkerOnIO, context_, id)); | 
| 333   return Response::OK(); | 341   return Response::OK(); | 
| 334 } | 342 } | 
| 335 | 343 | 
| 336 Response ServiceWorkerHandler::InspectWorker(const std::string& version_id) { | 344 Response ServiceWorkerHandler::InspectWorker(const std::string& version_id) { | 
| 337   if (!enabled_) | 345   if (!enabled_) | 
| 338     return Response::OK(); | 346     return Response::OK(); | 
| 339   if (!context_) | 347   if (!context_) | 
| 340     return CreateContextErrorResoponse(); | 348     return CreateContextErrorResoponse(); | 
| 341 |  | 
| 342   int64 id = 0; | 349   int64 id = 0; | 
| 343   if (!base::StringToInt64(version_id, &id)) | 350   if (!base::StringToInt64(version_id, &id)) | 
| 344     return CreateInvalidVersionIdErrorResoponse(); | 351     return CreateInvalidVersionIdErrorResoponse(); | 
| 345   BrowserThread::PostTask( | 352   BrowserThread::PostTask( | 
| 346       BrowserThread::IO, FROM_HERE, | 353       BrowserThread::IO, FROM_HERE, | 
| 347       base::Bind(&GetDevToolsRouteInfoOnIO, context_, id, | 354       base::Bind(&GetDevToolsRouteInfoOnIO, context_, id, | 
| 348                  base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow, | 355                  base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow, | 
| 349                             weak_factory_.GetWeakPtr()))); | 356                             weak_factory_.GetWeakPtr()))); | 
| 350   return Response::OK(); | 357   return Response::OK(); | 
| 351 } | 358 } | 
| 352 | 359 | 
|  | 360 Response ServiceWorkerHandler::DetachWorker(const std::string& worker_id) { | 
|  | 361   if (!enabled_) | 
|  | 362     return Response::OK(); | 
|  | 363   if (!context_) | 
|  | 364     return CreateContextErrorResoponse(); | 
|  | 365   auto it = attached_hosts_.find(worker_id); | 
|  | 366   if (it == attached_hosts_.end()) | 
|  | 367     return Response::OK();  // Already disconnected. | 
|  | 368   scoped_refptr<ServiceWorkerDevToolsAgentHost> host(it->second); | 
|  | 369   client_->WorkerTerminated( | 
|  | 370       WorkerTerminatedParams::Create()->set_worker_id(worker_id)); | 
|  | 371   host->DetachClient(); | 
|  | 372   attached_hosts_.erase(worker_id); | 
|  | 373   return Response::OK(); | 
|  | 374 } | 
|  | 375 | 
| 353 Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) { | 376 Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) { | 
| 354   ServiceWorkerDevToolsManager::GetInstance() | 377   ServiceWorkerDevToolsManager::GetInstance() | 
| 355       ->set_debug_service_worker_on_start(debug_on_start); | 378       ->set_debug_service_worker_on_start(debug_on_start); | 
| 356   return Response::OK(); | 379   return Response::OK(); | 
| 357 } | 380 } | 
| 358 | 381 | 
| 359 void ServiceWorkerHandler::OpenNewDevToolsWindow(int process_id, | 382 void ServiceWorkerHandler::OpenNewDevToolsWindow(int process_id, | 
| 360                                                  int devtools_agent_route_id) { | 383                                                  int devtools_agent_route_id) { | 
| 361   scoped_refptr<DevToolsAgentHostImpl> agent_host( | 384   scoped_refptr<DevToolsAgentHostImpl> agent_host( | 
| 362       ServiceWorkerDevToolsManager::GetInstance() | 385       ServiceWorkerDevToolsManager::GetInstance() | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 471     return; | 494     return; | 
| 472   host->DetachClient(); | 495   host->DetachClient(); | 
| 473   client_->WorkerTerminated(WorkerTerminatedParams::Create()-> | 496   client_->WorkerTerminated(WorkerTerminatedParams::Create()-> | 
| 474       set_worker_id(host->GetId())); | 497       set_worker_id(host->GetId())); | 
| 475   attached_hosts_.erase(it); | 498   attached_hosts_.erase(it); | 
| 476 } | 499 } | 
| 477 | 500 | 
| 478 }  // namespace service_worker | 501 }  // namespace service_worker | 
| 479 }  // namespace devtools | 502 }  // namespace devtools | 
| 480 }  // namespace content | 503 }  // namespace content | 
| OLD | NEW | 
|---|