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

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

Issue 1221643014: Service Worker: Migrate to version_uuid and surface ServiceWorker.id. (Chromium 2/3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 SERVICE_WORKER_PROVIDER_FOR_SHARED_WORKER) { 101 SERVICE_WORKER_PROVIDER_FOR_SHARED_WORKER) {
102 scoped_refptr<DevToolsAgentHost> agent_host( 102 scoped_refptr<DevToolsAgentHost> agent_host(
103 DevToolsAgentHost::GetForWorker(client.second.process_id, 103 DevToolsAgentHost::GetForWorker(client.second.process_id,
104 client.second.route_id)); 104 client.second.route_id));
105 if (agent_host) 105 if (agent_host)
106 clients.push_back(agent_host->GetId()); 106 clients.push_back(agent_host->GetId());
107 } 107 }
108 } 108 }
109 scoped_refptr<ServiceWorkerVersion> version( 109 scoped_refptr<ServiceWorkerVersion> version(
110 ServiceWorkerVersion::Create() 110 ServiceWorkerVersion::Create()
111 ->set_version_id(base::Int64ToString(version_info.version_id)) 111 ->set_version_id(version_info.version_uuid)
112 ->set_registration_id( 112 ->set_registration_id(
113 base::Int64ToString(version_info.registration_id)) 113 base::Int64ToString(version_info.registration_id))
114 ->set_script_url(version_info.script_url.spec()) 114 ->set_script_url(version_info.script_url.spec())
115 ->set_running_status( 115 ->set_running_status(
116 GetVersionRunningStatusString(version_info.running_status)) 116 GetVersionRunningStatusString(version_info.running_status))
117 ->set_status(GetVersionStatusString(version_info.status)) 117 ->set_status(GetVersionStatusString(version_info.status))
118 ->set_script_last_modified( 118 ->set_script_last_modified(
119 version_info.script_last_modified.ToDoubleT()) 119 version_info.script_last_modified.ToDoubleT())
120 ->set_script_response_time( 120 ->set_script_response_time(
121 version_info.script_response_time.ToDoubleT()) 121 version_info.script_response_time.ToDoubleT())
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 } 171 }
172 return result; 172 return result;
173 } 173 }
174 174
175 bool CollectURLs(std::set<GURL>* urls, FrameTreeNode* tree_node) { 175 bool CollectURLs(std::set<GURL>* urls, FrameTreeNode* tree_node) {
176 urls->insert(tree_node->current_url()); 176 urls->insert(tree_node->current_url());
177 return false; 177 return false;
178 } 178 }
179 179
180 void StopServiceWorkerOnIO(scoped_refptr<ServiceWorkerContextWrapper> context, 180 void StopServiceWorkerOnIO(scoped_refptr<ServiceWorkerContextWrapper> context,
181 int64 version_id) { 181 std::string version_uuid) {
182 if (content::ServiceWorkerVersion* version = 182 if (content::ServiceWorkerVersion* version =
183 context->GetLiveVersion(version_id)) { 183 context->GetLiveVersion(version_uuid)) {
184 version->StopWorker(base::Bind(&StatusNoOp)); 184 version->StopWorker(base::Bind(&StatusNoOp));
185 } 185 }
186 } 186 }
187 187
188 void GetDevToolsRouteInfoOnIO( 188 void GetDevToolsRouteInfoOnIO(
189 scoped_refptr<ServiceWorkerContextWrapper> context, 189 scoped_refptr<ServiceWorkerContextWrapper> context,
190 int64 version_id, 190 std::string version_uuid,
191 const base::Callback<void(int, int)>& callback) { 191 const base::Callback<void(int, int)>& callback) {
192 if (content::ServiceWorkerVersion* version = 192 if (content::ServiceWorkerVersion* version =
193 context->GetLiveVersion(version_id)) { 193 context->GetLiveVersion(version_uuid)) {
194 BrowserThread::PostTask( 194 BrowserThread::PostTask(
195 BrowserThread::UI, FROM_HERE, 195 BrowserThread::UI, FROM_HERE,
196 base::Bind( 196 base::Bind(
197 callback, version->embedded_worker()->process_id(), 197 callback, version->embedded_worker()->process_id(),
198 version->embedded_worker()->worker_devtools_agent_route_id())); 198 version->embedded_worker()->worker_devtools_agent_route_id()));
199 } 199 }
200 } 200 }
201 201
202 Response CreateContextErrorResponse() { 202 Response CreateContextErrorResponse() {
203 return Response::InternalError("Could not connect to the context"); 203 return Response::InternalError("Could not connect to the context");
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 360
361 Response ServiceWorkerHandler::StartWorker(const std::string& scope_url) { 361 Response ServiceWorkerHandler::StartWorker(const std::string& scope_url) {
362 if (!enabled_) 362 if (!enabled_)
363 return Response::OK(); 363 return Response::OK();
364 if (!context_) 364 if (!context_)
365 return CreateContextErrorResponse(); 365 return CreateContextErrorResponse();
366 context_->StartServiceWorker(GURL(scope_url), base::Bind(&StatusNoOp)); 366 context_->StartServiceWorker(GURL(scope_url), base::Bind(&StatusNoOp));
367 return Response::OK(); 367 return Response::OK();
368 } 368 }
369 369
370 Response ServiceWorkerHandler::StopWorker(const std::string& version_id) { 370 Response ServiceWorkerHandler::StopWorker(const std::string& version_uuid) {
371 if (!enabled_) 371 if (!enabled_)
372 return Response::OK(); 372 return Response::OK();
373 if (!context_) 373 if (!context_)
374 return CreateContextErrorResponse(); 374 return CreateContextErrorResponse();
375 int64 id = 0; 375 std::string id(version_uuid);
376 if (!base::StringToInt64(version_id, &id)) 376 if (id.empty())
377 return CreateInvalidVersionIdErrorResponse(); 377 return CreateInvalidVersionIdErrorResponse();
378 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 378 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
379 base::Bind(&StopServiceWorkerOnIO, context_, id)); 379 base::Bind(&StopServiceWorkerOnIO, context_, id));
380 return Response::OK(); 380 return Response::OK();
381 } 381 }
382 382
383 Response ServiceWorkerHandler::UpdateRegistration( 383 Response ServiceWorkerHandler::UpdateRegistration(
384 const std::string& scope_url) { 384 const std::string& scope_url) {
385 if (!enabled_) 385 if (!enabled_)
386 return Response::OK(); 386 return Response::OK();
387 if (!context_) 387 if (!context_)
388 return CreateContextErrorResponse(); 388 return CreateContextErrorResponse();
389 context_->UpdateRegistration(GURL(scope_url)); 389 context_->UpdateRegistration(GURL(scope_url));
390 return Response::OK(); 390 return Response::OK();
391 } 391 }
392 392
393 Response ServiceWorkerHandler::InspectWorker(const std::string& version_id) { 393 Response ServiceWorkerHandler::InspectWorker(const std::string& version_uuid) {
394 if (!enabled_) 394 if (!enabled_)
395 return Response::OK(); 395 return Response::OK();
396 if (!context_) 396 if (!context_)
397 return CreateContextErrorResponse(); 397 return CreateContextErrorResponse();
398 398
399 int64 id = 0; 399 std::string id(version_uuid);
400 if (!base::StringToInt64(version_id, &id)) 400 if (id.empty())
401 return CreateInvalidVersionIdErrorResponse(); 401 return CreateInvalidVersionIdErrorResponse();
402 BrowserThread::PostTask( 402 BrowserThread::PostTask(
403 BrowserThread::IO, FROM_HERE, 403 BrowserThread::IO, FROM_HERE,
404 base::Bind(&GetDevToolsRouteInfoOnIO, context_, id, 404 base::Bind(&GetDevToolsRouteInfoOnIO, context_, id,
405 base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow, 405 base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow,
406 weak_factory_.GetWeakPtr()))); 406 weak_factory_.GetWeakPtr())));
407 return Response::OK(); 407 return Response::OK();
408 } 408 }
409 409
410 Response ServiceWorkerHandler::SkipWaiting(const std::string& version_id) { 410 Response ServiceWorkerHandler::SkipWaiting(const std::string& version_uuid) {
411 if (!enabled_) 411 if (!enabled_)
412 return Response::OK(); 412 return Response::OK();
413 if (!context_) 413 if (!context_)
414 return CreateContextErrorResponse(); 414 return CreateContextErrorResponse();
415 415
416 int64 id = 0; 416 std::string id(version_uuid);
417 if (!base::StringToInt64(version_id, &id)) 417 if (id.empty())
418 return CreateInvalidVersionIdErrorResponse(); 418 return CreateInvalidVersionIdErrorResponse();
419 context_->SimulateSkipWaiting(id); 419 context_->SimulateSkipWaiting(id);
420 return Response::OK(); 420 return Response::OK();
421 } 421 }
422 422
423 Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) { 423 Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) {
424 ServiceWorkerDevToolsManager::GetInstance() 424 ServiceWorkerDevToolsManager::GetInstance()
425 ->set_debug_service_worker_on_start(debug_on_start); 425 ->set_debug_service_worker_on_start(debug_on_start);
426 return Response::OK(); 426 return Response::OK();
427 } 427 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 std::vector<scoped_refptr<ServiceWorkerVersion>> version_values; 495 std::vector<scoped_refptr<ServiceWorkerVersion>> version_values;
496 for (const auto& version : versions) { 496 for (const auto& version : versions) {
497 version_values.push_back(CreateVersionDictionaryValue(version)); 497 version_values.push_back(CreateVersionDictionaryValue(version));
498 } 498 }
499 client_->WorkerVersionUpdated( 499 client_->WorkerVersionUpdated(
500 WorkerVersionUpdatedParams::Create()->set_versions(version_values)); 500 WorkerVersionUpdatedParams::Create()->set_versions(version_values));
501 } 501 }
502 502
503 void ServiceWorkerHandler::OnErrorReported( 503 void ServiceWorkerHandler::OnErrorReported(
504 int64 registration_id, 504 int64 registration_id,
505 int64 version_id, 505 std::string version_uuid,
506 const ServiceWorkerContextObserver::ErrorInfo& info) { 506 const ServiceWorkerContextObserver::ErrorInfo& info) {
507 client_->WorkerErrorReported( 507 client_->WorkerErrorReported(
508 WorkerErrorReportedParams::Create()->set_error_message( 508 WorkerErrorReportedParams::Create()->set_error_message(
509 ServiceWorkerErrorMessage::Create() 509 ServiceWorkerErrorMessage::Create()
510 ->set_error_message(base::UTF16ToUTF8(info.error_message)) 510 ->set_error_message(base::UTF16ToUTF8(info.error_message))
511 ->set_registration_id(base::Int64ToString(registration_id)) 511 ->set_registration_id(base::Int64ToString(registration_id))
512 ->set_version_id(base::Int64ToString(version_id)) 512 ->set_version_id(version_uuid)
513 ->set_source_url(info.source_url.spec()) 513 ->set_source_url(info.source_url.spec())
514 ->set_line_number(info.line_number) 514 ->set_line_number(info.line_number)
515 ->set_column_number(info.column_number))); 515 ->set_column_number(info.column_number)));
516 } 516 }
517 517
518 void ServiceWorkerHandler::DispatchProtocolMessage( 518 void ServiceWorkerHandler::DispatchProtocolMessage(
519 DevToolsAgentHost* host, 519 DevToolsAgentHost* host,
520 const std::string& message) { 520 const std::string& message) {
521 521
522 auto it = attached_hosts_.find(host->GetId()); 522 auto it = attached_hosts_.find(host->GetId());
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 return; 588 return;
589 host->DetachClient(); 589 host->DetachClient();
590 client_->WorkerTerminated(WorkerTerminatedParams::Create()-> 590 client_->WorkerTerminated(WorkerTerminatedParams::Create()->
591 set_worker_id(host->GetId())); 591 set_worker_id(host->GetId()));
592 attached_hosts_.erase(it); 592 attached_hosts_.erase(it);
593 } 593 }
594 594
595 } // namespace service_worker 595 } // namespace service_worker
596 } // namespace devtools 596 } // namespace devtools
597 } // namespace content 597 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698