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

Side by Side Diff: content/browser/devtools/protocol/service_worker_handler.cc

Issue 1060053002: [WIP] Support opening an inspector window for ServiceWorker running on Android (chromium) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698