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

Side by Side Diff: content/child/service_worker/service_worker_dispatcher.cc

Issue 2433273003: service worker: Plumb NavigationPreloadManager.enable/disable to browser-side (Closed)
Patch Set: comments Created 4 years, 1 month 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/child/service_worker/service_worker_dispatcher.h" 5 #include "content/child/service_worker/service_worker_dispatcher.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistered, OnRegistered) 72 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistered, OnRegistered)
73 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdated, OnUpdated) 73 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdated, OnUpdated)
74 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistered, 74 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistered,
75 OnUnregistered) 75 OnUnregistered)
76 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistration, 76 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistration,
77 OnDidGetRegistration) 77 OnDidGetRegistration)
78 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrations, 78 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrations,
79 OnDidGetRegistrations) 79 OnDidGetRegistrations)
80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady, 80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady,
81 OnDidGetRegistrationForReady) 81 OnDidGetRegistrationForReady)
82 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidEnableNavigationPreload,
83 OnDidEnableNavigationPreload)
82 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError, 84 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError,
83 OnRegistrationError) 85 OnRegistrationError)
84 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError, 86 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError,
85 OnUpdateError) 87 OnUpdateError)
86 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistrationError, 88 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistrationError,
87 OnUnregistrationError) 89 OnUnregistrationError)
88 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationError, 90 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationError,
89 OnGetRegistrationError) 91 OnGetRegistrationError)
90 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationsError, 92 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationsError,
91 OnGetRegistrationsError) 93 OnGetRegistrationsError)
94 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_EnableNavigationPreloadError,
95 OnEnableNavigationPreloadError)
92 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerStateChanged, 96 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerStateChanged,
93 OnServiceWorkerStateChanged) 97 OnServiceWorkerStateChanged)
94 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SetVersionAttributes, 98 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SetVersionAttributes,
95 OnSetVersionAttributes) 99 OnSetVersionAttributes)
96 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_UpdateFound, 100 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_UpdateFound,
97 OnUpdateFound) 101 OnUpdateFound)
98 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SetControllerServiceWorker, 102 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SetControllerServiceWorker,
99 OnSetControllerServiceWorker) 103 OnSetControllerServiceWorker)
100 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToDocument, 104 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToDocument,
101 OnPostMessage) 105 OnPostMessage)
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 int provider_id, 203 int provider_id,
200 WebServiceWorkerGetRegistrationForReadyCallbacks* callbacks) { 204 WebServiceWorkerGetRegistrationForReadyCallbacks* callbacks) {
201 int request_id = get_for_ready_callbacks_.Add(callbacks); 205 int request_id = get_for_ready_callbacks_.Add(callbacks);
202 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", 206 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker",
203 "ServiceWorkerDispatcher::GetRegistrationForReady", 207 "ServiceWorkerDispatcher::GetRegistrationForReady",
204 request_id); 208 request_id);
205 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistrationForReady( 209 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistrationForReady(
206 CurrentWorkerId(), request_id, provider_id)); 210 CurrentWorkerId(), request_id, provider_id));
207 } 211 }
208 212
213 void ServiceWorkerDispatcher::EnableNavigationPreload(
214 int provider_id,
215 int64_t registration_id,
216 bool enable,
217 std::unique_ptr<WebEnableNavigationPreloadCallbacks> callbacks) {
218 DCHECK(callbacks);
219 int request_id =
220 enable_navigation_preload_callbacks_.Add(callbacks.release());
221 thread_safe_sender_->Send(new ServiceWorkerHostMsg_EnableNavigationPreload(
222 CurrentWorkerId(), request_id, provider_id, registration_id, enable));
223 }
224
209 void ServiceWorkerDispatcher::AddProviderContext( 225 void ServiceWorkerDispatcher::AddProviderContext(
210 ServiceWorkerProviderContext* provider_context) { 226 ServiceWorkerProviderContext* provider_context) {
211 DCHECK(provider_context); 227 DCHECK(provider_context);
212 int provider_id = provider_context->provider_id(); 228 int provider_id = provider_context->provider_id();
213 DCHECK(!base::ContainsKey(provider_contexts_, provider_id)); 229 DCHECK(!base::ContainsKey(provider_contexts_, provider_id));
214 provider_contexts_[provider_id] = provider_context; 230 provider_contexts_[provider_id] = provider_context;
215 } 231 }
216 232
217 void ServiceWorkerDispatcher::RemoveProviderContext( 233 void ServiceWorkerDispatcher::RemoveProviderContext(
218 ServiceWorkerProviderContext* provider_context) { 234 ServiceWorkerProviderContext* provider_context) {
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 get_for_ready_callbacks_.Lookup(request_id); 529 get_for_ready_callbacks_.Lookup(request_id);
514 DCHECK(callbacks); 530 DCHECK(callbacks);
515 if (!callbacks) 531 if (!callbacks)
516 return; 532 return;
517 533
518 callbacks->onSuccess(WebServiceWorkerRegistrationImpl::CreateHandle( 534 callbacks->onSuccess(WebServiceWorkerRegistrationImpl::CreateHandle(
519 GetOrAdoptRegistration(info, attrs))); 535 GetOrAdoptRegistration(info, attrs)));
520 get_for_ready_callbacks_.Remove(request_id); 536 get_for_ready_callbacks_.Remove(request_id);
521 } 537 }
522 538
539 void ServiceWorkerDispatcher::OnDidEnableNavigationPreload(int thread_id,
540 int request_id) {
541 WebEnableNavigationPreloadCallbacks* callbacks =
542 enable_navigation_preload_callbacks_.Lookup(request_id);
543 DCHECK(callbacks);
544 if (!callbacks)
545 return;
546 callbacks->onSuccess();
547 enable_navigation_preload_callbacks_.Remove(request_id);
548 }
549
523 void ServiceWorkerDispatcher::OnRegistrationError( 550 void ServiceWorkerDispatcher::OnRegistrationError(
524 int thread_id, 551 int thread_id,
525 int request_id, 552 int request_id,
526 WebServiceWorkerError::ErrorType error_type, 553 WebServiceWorkerError::ErrorType error_type,
527 const base::string16& message) { 554 const base::string16& message) {
528 TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker", 555 TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
529 "ServiceWorkerDispatcher::RegisterServiceWorker", 556 "ServiceWorkerDispatcher::RegisterServiceWorker",
530 request_id, 557 request_id,
531 "OnRegistrationError"); 558 "OnRegistrationError");
532 TRACE_EVENT_ASYNC_END0("ServiceWorker", 559 TRACE_EVENT_ASYNC_END0("ServiceWorker",
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 WebServiceWorkerGetRegistrationsCallbacks* callbacks = 652 WebServiceWorkerGetRegistrationsCallbacks* callbacks =
626 pending_get_registrations_callbacks_.Lookup(request_id); 653 pending_get_registrations_callbacks_.Lookup(request_id);
627 DCHECK(callbacks); 654 DCHECK(callbacks);
628 if (!callbacks) 655 if (!callbacks)
629 return; 656 return;
630 657
631 callbacks->onError(WebServiceWorkerError(error_type, message)); 658 callbacks->onError(WebServiceWorkerError(error_type, message));
632 pending_get_registrations_callbacks_.Remove(request_id); 659 pending_get_registrations_callbacks_.Remove(request_id);
633 } 660 }
634 661
662 void ServiceWorkerDispatcher::OnEnableNavigationPreloadError(
663 int thread_id,
664 int request_id,
665 WebServiceWorkerError::ErrorType error_type,
666 const std::string& message) {
667 WebEnableNavigationPreloadCallbacks* callbacks =
668 enable_navigation_preload_callbacks_.Lookup(request_id);
669 DCHECK(callbacks);
670 if (!callbacks)
671 return;
672 callbacks->onError(
673 WebServiceWorkerError(error_type, blink::WebString::fromUTF8(message)));
674 enable_navigation_preload_callbacks_.Remove(request_id);
675 }
676
635 void ServiceWorkerDispatcher::OnServiceWorkerStateChanged( 677 void ServiceWorkerDispatcher::OnServiceWorkerStateChanged(
636 int thread_id, 678 int thread_id,
637 int handle_id, 679 int handle_id,
638 blink::WebServiceWorkerState state) { 680 blink::WebServiceWorkerState state) {
639 TRACE_EVENT2("ServiceWorker", 681 TRACE_EVENT2("ServiceWorker",
640 "ServiceWorkerDispatcher::OnServiceWorkerStateChanged", 682 "ServiceWorkerDispatcher::OnServiceWorkerStateChanged",
641 "Thread ID", thread_id, 683 "Thread ID", thread_id,
642 "State", state); 684 "State", state);
643 WorkerObjectMap::iterator worker = service_workers_.find(handle_id); 685 WorkerObjectMap::iterator worker = service_workers_.find(handle_id);
644 if (worker != service_workers_.end()) 686 if (worker != service_workers_.end())
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 return ServiceWorkerRegistrationHandleReference::Adopt( 817 return ServiceWorkerRegistrationHandleReference::Adopt(
776 info, thread_safe_sender_.get()); 818 info, thread_safe_sender_.get());
777 } 819 }
778 820
779 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt( 821 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt(
780 const ServiceWorkerObjectInfo& info) { 822 const ServiceWorkerObjectInfo& info) {
781 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); 823 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get());
782 } 824 }
783 825
784 } // namespace content 826 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698