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

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

Issue 2451373003: service worker: Implement NavigationPreloadManager.setHeaderValue (Closed)
Patch Set: revise 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistration, 77 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistration,
78 OnDidGetRegistration) 78 OnDidGetRegistration)
79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrations, 79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrations,
80 OnDidGetRegistrations) 80 OnDidGetRegistrations)
81 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady, 81 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady,
82 OnDidGetRegistrationForReady) 82 OnDidGetRegistrationForReady)
83 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidEnableNavigationPreload, 83 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidEnableNavigationPreload,
84 OnDidEnableNavigationPreload) 84 OnDidEnableNavigationPreload)
85 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetNavigationPreloadState, 85 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetNavigationPreloadState,
86 OnDidGetNavigationPreloadState) 86 OnDidGetNavigationPreloadState)
87 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidSetNavigationPreloadHeader,
88 OnDidSetNavigationPreloadHeader)
87 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError, 89 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError,
88 OnRegistrationError) 90 OnRegistrationError)
89 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError, 91 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError,
90 OnUpdateError) 92 OnUpdateError)
91 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistrationError, 93 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistrationError,
92 OnUnregistrationError) 94 OnUnregistrationError)
93 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationError, 95 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationError,
94 OnGetRegistrationError) 96 OnGetRegistrationError)
95 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationsError, 97 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationsError,
96 OnGetRegistrationsError) 98 OnGetRegistrationsError)
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 int provider_id, 233 int provider_id,
232 int64_t registration_id, 234 int64_t registration_id,
233 std::unique_ptr<WebGetNavigationPreloadStateCallbacks> callbacks) { 235 std::unique_ptr<WebGetNavigationPreloadStateCallbacks> callbacks) {
234 DCHECK(callbacks); 236 DCHECK(callbacks);
235 int request_id = 237 int request_id =
236 get_navigation_preload_state_callbacks_.Add(callbacks.release()); 238 get_navigation_preload_state_callbacks_.Add(callbacks.release());
237 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetNavigationPreloadState( 239 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetNavigationPreloadState(
238 CurrentWorkerId(), request_id, provider_id, registration_id)); 240 CurrentWorkerId(), request_id, provider_id, registration_id));
239 } 241 }
240 242
243 void ServiceWorkerDispatcher::SetNavigationPreloadHeader(
244 int provider_id,
245 int64_t registration_id,
246 const std::string& value,
247 std::unique_ptr<WebSetNavigationPreloadHeaderCallbacks> callbacks) {
248 DCHECK(callbacks);
249 int request_id =
250 set_navigation_preload_header_callbacks_.Add(callbacks.release());
251 thread_safe_sender_->Send(new ServiceWorkerHostMsg_SetNavigationPreloadHeader(
252 CurrentWorkerId(), request_id, provider_id, registration_id, value));
253 }
254
241 void ServiceWorkerDispatcher::AddProviderContext( 255 void ServiceWorkerDispatcher::AddProviderContext(
242 ServiceWorkerProviderContext* provider_context) { 256 ServiceWorkerProviderContext* provider_context) {
243 DCHECK(provider_context); 257 DCHECK(provider_context);
244 int provider_id = provider_context->provider_id(); 258 int provider_id = provider_context->provider_id();
245 DCHECK(!base::ContainsKey(provider_contexts_, provider_id)); 259 DCHECK(!base::ContainsKey(provider_contexts_, provider_id));
246 provider_contexts_[provider_id] = provider_context; 260 provider_contexts_[provider_id] = provider_context;
247 } 261 }
248 262
249 void ServiceWorkerDispatcher::RemoveProviderContext( 263 void ServiceWorkerDispatcher::RemoveProviderContext(
250 ServiceWorkerProviderContext* provider_context) { 264 ServiceWorkerProviderContext* provider_context) {
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 int request_id) { 570 int request_id) {
557 WebEnableNavigationPreloadCallbacks* callbacks = 571 WebEnableNavigationPreloadCallbacks* callbacks =
558 enable_navigation_preload_callbacks_.Lookup(request_id); 572 enable_navigation_preload_callbacks_.Lookup(request_id);
559 DCHECK(callbacks); 573 DCHECK(callbacks);
560 if (!callbacks) 574 if (!callbacks)
561 return; 575 return;
562 callbacks->onSuccess(); 576 callbacks->onSuccess();
563 enable_navigation_preload_callbacks_.Remove(request_id); 577 enable_navigation_preload_callbacks_.Remove(request_id);
564 } 578 }
565 579
566 void ServiceWorkerDispatcher::OnDidGetNavigationPreloadState(int thread_id, 580 void ServiceWorkerDispatcher::OnDidGetNavigationPreloadState(
567 int request_id, 581 int thread_id,
568 bool enabled) { 582 int request_id,
583 const NavigationPreloadState& state) {
569 WebGetNavigationPreloadStateCallbacks* callbacks = 584 WebGetNavigationPreloadStateCallbacks* callbacks =
570 get_navigation_preload_state_callbacks_.Lookup(request_id); 585 get_navigation_preload_state_callbacks_.Lookup(request_id);
571 DCHECK(callbacks); 586 DCHECK(callbacks);
572 if (!callbacks) 587 if (!callbacks)
573 return; 588 return;
574 // TODO(falken): Implement populating headerValue. 589 callbacks->onSuccess(blink::WebNavigationPreloadState(
575 callbacks->onSuccess( 590 state.enabled, blink::WebString::fromUTF8(state.header)));
576 blink::WebNavigationPreloadState(enabled, blink::WebString()));
577 get_navigation_preload_state_callbacks_.Remove(request_id); 591 get_navigation_preload_state_callbacks_.Remove(request_id);
578 } 592 }
579 593
594 void ServiceWorkerDispatcher::OnDidSetNavigationPreloadHeader(int thread_id,
595 int request_id) {
596 WebSetNavigationPreloadHeaderCallbacks* callbacks =
597 set_navigation_preload_header_callbacks_.Lookup(request_id);
598 DCHECK(callbacks);
599 if (!callbacks)
600 return;
601 callbacks->onSuccess();
602 set_navigation_preload_header_callbacks_.Remove(request_id);
603 }
604
580 void ServiceWorkerDispatcher::OnRegistrationError( 605 void ServiceWorkerDispatcher::OnRegistrationError(
581 int thread_id, 606 int thread_id,
582 int request_id, 607 int request_id,
583 WebServiceWorkerError::ErrorType error_type, 608 WebServiceWorkerError::ErrorType error_type,
584 const base::string16& message) { 609 const base::string16& message) {
585 TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker", 610 TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
586 "ServiceWorkerDispatcher::RegisterServiceWorker", 611 "ServiceWorkerDispatcher::RegisterServiceWorker",
587 request_id, 612 request_id,
588 "OnRegistrationError"); 613 "OnRegistrationError");
589 TRACE_EVENT_ASYNC_END0("ServiceWorker", 614 TRACE_EVENT_ASYNC_END0("ServiceWorker",
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 WebGetNavigationPreloadStateCallbacks* callbacks = 737 WebGetNavigationPreloadStateCallbacks* callbacks =
713 get_navigation_preload_state_callbacks_.Lookup(request_id); 738 get_navigation_preload_state_callbacks_.Lookup(request_id);
714 DCHECK(callbacks); 739 DCHECK(callbacks);
715 if (!callbacks) 740 if (!callbacks)
716 return; 741 return;
717 callbacks->onError( 742 callbacks->onError(
718 WebServiceWorkerError(error_type, blink::WebString::fromUTF8(message))); 743 WebServiceWorkerError(error_type, blink::WebString::fromUTF8(message)));
719 get_navigation_preload_state_callbacks_.Remove(request_id); 744 get_navigation_preload_state_callbacks_.Remove(request_id);
720 } 745 }
721 746
747 void ServiceWorkerDispatcher::OnSetNavigationPreloadHeaderError(
748 int thread_id,
749 int request_id,
750 WebServiceWorkerError::ErrorType error_type,
751 const std::string& message) {
752 WebSetNavigationPreloadHeaderCallbacks* callbacks =
753 set_navigation_preload_header_callbacks_.Lookup(request_id);
754 DCHECK(callbacks);
755 if (!callbacks)
756 return;
757 callbacks->onError(
758 WebServiceWorkerError(error_type, blink::WebString::fromUTF8(message)));
759 set_navigation_preload_header_callbacks_.Remove(request_id);
760 }
761
722 void ServiceWorkerDispatcher::OnServiceWorkerStateChanged( 762 void ServiceWorkerDispatcher::OnServiceWorkerStateChanged(
723 int thread_id, 763 int thread_id,
724 int handle_id, 764 int handle_id,
725 blink::WebServiceWorkerState state) { 765 blink::WebServiceWorkerState state) {
726 TRACE_EVENT2("ServiceWorker", 766 TRACE_EVENT2("ServiceWorker",
727 "ServiceWorkerDispatcher::OnServiceWorkerStateChanged", 767 "ServiceWorkerDispatcher::OnServiceWorkerStateChanged",
728 "Thread ID", thread_id, 768 "Thread ID", thread_id,
729 "State", state); 769 "State", state);
730 WorkerObjectMap::iterator worker = service_workers_.find(handle_id); 770 WorkerObjectMap::iterator worker = service_workers_.find(handle_id);
731 if (worker != service_workers_.end()) 771 if (worker != service_workers_.end())
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 return ServiceWorkerRegistrationHandleReference::Adopt( 902 return ServiceWorkerRegistrationHandleReference::Adopt(
863 info, thread_safe_sender_.get()); 903 info, thread_safe_sender_.get());
864 } 904 }
865 905
866 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt( 906 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt(
867 const ServiceWorkerObjectInfo& info) { 907 const ServiceWorkerObjectInfo& info) {
868 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); 908 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get());
869 } 909 }
870 910
871 } // namespace content 911 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698