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

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

Issue 1841863003: DevTools: move the force update SW on reload checkbox to the Resources / Service Workers view. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test fixed Created 4 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 126 }
127 127
128 scoped_refptr<ServiceWorkerRegistration> CreateRegistrationDictionaryValue( 128 scoped_refptr<ServiceWorkerRegistration> CreateRegistrationDictionaryValue(
129 const ServiceWorkerRegistrationInfo& registration_info) { 129 const ServiceWorkerRegistrationInfo& registration_info) {
130 scoped_refptr<ServiceWorkerRegistration> registration( 130 scoped_refptr<ServiceWorkerRegistration> registration(
131 ServiceWorkerRegistration::Create() 131 ServiceWorkerRegistration::Create()
132 ->set_registration_id( 132 ->set_registration_id(
133 base::Int64ToString(registration_info.registration_id)) 133 base::Int64ToString(registration_info.registration_id))
134 ->set_scope_url(registration_info.pattern.spec()) 134 ->set_scope_url(registration_info.pattern.spec())
135 ->set_is_deleted(registration_info.delete_flag == 135 ->set_is_deleted(registration_info.delete_flag ==
136 ServiceWorkerRegistrationInfo::IS_DELETED) 136 ServiceWorkerRegistrationInfo::IS_DELETED));
137 ->set_force_update_on_page_load(
138 registration_info.force_update_on_page_load ==
139 ServiceWorkerRegistrationInfo::IS_FORCED));
140 return registration; 137 return registration;
141 } 138 }
142 139
143 scoped_refptr<ServiceWorkerDevToolsAgentHost> GetMatchingServiceWorker( 140 scoped_refptr<ServiceWorkerDevToolsAgentHost> GetMatchingServiceWorker(
144 const ServiceWorkerDevToolsAgentHost::List& agent_hosts, 141 const ServiceWorkerDevToolsAgentHost::List& agent_hosts,
145 const GURL& url) { 142 const GURL& url) {
146 scoped_refptr<ServiceWorkerDevToolsAgentHost> best_host; 143 scoped_refptr<ServiceWorkerDevToolsAgentHost> best_host;
147 bool best_host_scope_matched = false; 144 bool best_host_scope_matched = false;
148 int best_host_scope_length = 0; 145 int best_host_scope_length = 0;
149 146
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 301
305 Response ServiceWorkerHandler::Enable() { 302 Response ServiceWorkerHandler::Enable() {
306 if (enabled_) 303 if (enabled_)
307 return Response::OK(); 304 return Response::OK();
308 if (!context_) 305 if (!context_)
309 return Response::InternalError("Could not connect to the context"); 306 return Response::InternalError("Could not connect to the context");
310 enabled_ = true; 307 enabled_ = true;
311 308
312 ServiceWorkerDevToolsManager::GetInstance()->AddObserver(this); 309 ServiceWorkerDevToolsManager::GetInstance()->AddObserver(this);
313 310
314 client_->DebugOnStartUpdated(
315 DebugOnStartUpdatedParams::Create()->set_debug_on_start(
316 ServiceWorkerDevToolsManager::GetInstance()
317 ->debug_service_worker_on_start()));
318
319 context_watcher_ = new ServiceWorkerContextWatcher( 311 context_watcher_ = new ServiceWorkerContextWatcher(
320 context_, base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, 312 context_, base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated,
321 weak_factory_.GetWeakPtr()), 313 weak_factory_.GetWeakPtr()),
322 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, 314 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated,
323 weak_factory_.GetWeakPtr()), 315 weak_factory_.GetWeakPtr()),
324 base::Bind(&ServiceWorkerHandler::OnErrorReported, 316 base::Bind(&ServiceWorkerHandler::OnErrorReported,
325 weak_factory_.GetWeakPtr())); 317 weak_factory_.GetWeakPtr()));
326 context_watcher_->Start(); 318 context_watcher_->Start();
327 319
328 UpdateHosts(); 320 UpdateHosts();
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 if (!base::StringToInt64(version_id, &id)) 407 if (!base::StringToInt64(version_id, &id))
416 return CreateInvalidVersionIdErrorResponse(); 408 return CreateInvalidVersionIdErrorResponse();
417 BrowserThread::PostTask( 409 BrowserThread::PostTask(
418 BrowserThread::IO, FROM_HERE, 410 BrowserThread::IO, FROM_HERE,
419 base::Bind(&GetDevToolsRouteInfoOnIO, context_, id, 411 base::Bind(&GetDevToolsRouteInfoOnIO, context_, id,
420 base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow, 412 base::Bind(&ServiceWorkerHandler::OpenNewDevToolsWindow,
421 weak_factory_.GetWeakPtr()))); 413 weak_factory_.GetWeakPtr())));
422 return Response::OK(); 414 return Response::OK();
423 } 415 }
424 416
425 Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) {
426 ServiceWorkerDevToolsManager::GetInstance()
427 ->set_debug_service_worker_on_start(debug_on_start);
428 return Response::OK();
429 }
430
431 Response ServiceWorkerHandler::SetForceUpdateOnPageLoad( 417 Response ServiceWorkerHandler::SetForceUpdateOnPageLoad(
432 const std::string& registration_id,
433 bool force_update_on_page_load) { 418 bool force_update_on_page_load) {
434 if (!context_) 419 if (!context_)
435 return CreateContextErrorResponse(); 420 return CreateContextErrorResponse();
436 int64_t id = kInvalidServiceWorkerRegistrationId; 421 context_->SetForceUpdateOnPageLoad(force_update_on_page_load);
437 if (!base::StringToInt64(registration_id, &id))
438 return CreateInvalidVersionIdErrorResponse();
439 if (force_update_on_page_load)
440 force_update_enabled_registrations_.insert(id);
441 else
442 force_update_enabled_registrations_.erase(id);
443 context_->SetForceUpdateOnPageLoad(id, force_update_on_page_load);
444 return Response::OK(); 422 return Response::OK();
445 } 423 }
446 424
447 Response ServiceWorkerHandler::DeliverPushMessage( 425 Response ServiceWorkerHandler::DeliverPushMessage(
448 const std::string& origin, 426 const std::string& origin,
449 const std::string& registration_id, 427 const std::string& registration_id,
450 const std::string& data) { 428 const std::string& data) {
451 if (!enabled_) 429 if (!enabled_)
452 return Response::OK(); 430 return Response::OK();
453 if (!render_frame_host_) 431 if (!render_frame_host_)
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 return; 557 return;
580 } 558 }
581 UpdateHosts(); 559 UpdateHosts();
582 } 560 }
583 561
584 void ServiceWorkerHandler::WorkerDestroyed( 562 void ServiceWorkerHandler::WorkerDestroyed(
585 ServiceWorkerDevToolsAgentHost* host) { 563 ServiceWorkerDevToolsAgentHost* host) {
586 UpdateHosts(); 564 UpdateHosts();
587 } 565 }
588 566
589 void ServiceWorkerHandler::DebugOnStartUpdated(bool debug_on_start) {
590 client_->DebugOnStartUpdated(
591 DebugOnStartUpdatedParams::Create()->set_debug_on_start(debug_on_start));
592 }
593
594 void ServiceWorkerHandler::ReportWorkerCreated( 567 void ServiceWorkerHandler::ReportWorkerCreated(
595 ServiceWorkerDevToolsAgentHost* host) { 568 ServiceWorkerDevToolsAgentHost* host) {
596 if (host->IsAttached()) 569 if (host->IsAttached())
597 return; 570 return;
598 attached_hosts_[host->GetId()] = host; 571 attached_hosts_[host->GetId()] = host;
599 host->AttachClient(this); 572 host->AttachClient(this);
600 client_->WorkerCreated(WorkerCreatedParams::Create() 573 client_->WorkerCreated(WorkerCreatedParams::Create()
601 ->set_worker_id(host->GetId()) 574 ->set_worker_id(host->GetId())
602 ->set_url(host->GetURL().spec()) 575 ->set_url(host->GetURL().spec())
603 ->set_version_id(base::Int64ToString( 576 ->set_version_id(base::Int64ToString(
604 host->service_worker_version_id()))); 577 host->service_worker_version_id())));
605 } 578 }
606 579
607 void ServiceWorkerHandler::ReportWorkerTerminated( 580 void ServiceWorkerHandler::ReportWorkerTerminated(
608 ServiceWorkerDevToolsAgentHost* host) { 581 ServiceWorkerDevToolsAgentHost* host) {
609 auto it = attached_hosts_.find(host->GetId()); 582 auto it = attached_hosts_.find(host->GetId());
610 if (it == attached_hosts_.end()) 583 if (it == attached_hosts_.end())
611 return; 584 return;
612 host->DetachClient(); 585 host->DetachClient();
613 client_->WorkerTerminated(WorkerTerminatedParams::Create()-> 586 client_->WorkerTerminated(WorkerTerminatedParams::Create()->
614 set_worker_id(host->GetId())); 587 set_worker_id(host->GetId()));
615 attached_hosts_.erase(it); 588 attached_hosts_.erase(it);
616 } 589 }
617 590
618 void ServiceWorkerHandler::ClearForceUpdate() { 591 void ServiceWorkerHandler::ClearForceUpdate() {
619 if (context_) { 592 if (context_)
620 for (const auto registration_id : force_update_enabled_registrations_) 593 context_->SetForceUpdateOnPageLoad(false);
621 context_->SetForceUpdateOnPageLoad(registration_id, false);
622 }
623 force_update_enabled_registrations_.clear();
624 } 594 }
625 595
626 } // namespace service_worker 596 } // namespace service_worker
627 } // namespace devtools 597 } // namespace devtools
628 } // namespace content 598 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/protocol/service_worker_handler.h ('k') | content/browser/devtools/service_worker_devtools_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698