Index: content/child/service_worker/service_worker_dispatcher.cc |
diff --git a/content/child/service_worker/service_worker_dispatcher.cc b/content/child/service_worker/service_worker_dispatcher.cc |
index 984468a725342878cf099057958ac33bfaa193ad..493d74b175075e1639fa40b41820452d572f16fb 100644 |
--- a/content/child/service_worker/service_worker_dispatcher.cc |
+++ b/content/child/service_worker/service_worker_dispatcher.cc |
@@ -79,6 +79,10 @@ void ServiceWorkerDispatcher::OnMessageReceived(const IPC::Message& msg) { |
OnDidGetRegistrations) |
IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady, |
OnDidGetRegistrationForReady) |
+ IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidSetNavigationPreload, |
+ OnDidSetNavigationPreload) |
+ IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetNavigationPreload, |
+ OnDidGetNavigationPreload) |
IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError, |
OnRegistrationError) |
IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError, |
@@ -206,6 +210,25 @@ void ServiceWorkerDispatcher::GetRegistrationForReady( |
CurrentWorkerId(), request_id, provider_id)); |
} |
+void ServiceWorkerDispatcher::SetNavigationPreload( |
+ int handle_id, |
+ const std::string& value, |
+ blink::WebServiceWorker::WebSetNavigationPreloadCallbacks* callback) { |
+ LOG(ERROR) << "ServiceWorkerDispatcher::SetNavigationPreload value=" << value; |
+ int request_id = pending_set_navigation_preload_callbacks_.Add(callback); |
+ thread_safe_sender_->Send(new ServiceWorkerHostMsg_SetNavigationPreload( |
+ CurrentWorkerId(), request_id, handle_id, value)); |
+} |
+ |
+void ServiceWorkerDispatcher::GetNavigationPreload( |
+ int handle_id, |
+ blink::WebServiceWorker::WebGetNavigationPreloadCallbacks* callback) { |
+ LOG(ERROR) << "ServiceWorkerDispatcher::GetNavigationPreload"; |
+ int request_id = pending_get_navigation_preload_callbacks_.Add(callback); |
+ thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetNavigationPreload( |
+ CurrentWorkerId(), request_id, handle_id)); |
+} |
+ |
void ServiceWorkerDispatcher::AddProviderContext( |
ServiceWorkerProviderContext* provider_context) { |
DCHECK(provider_context); |
@@ -520,6 +543,39 @@ void ServiceWorkerDispatcher::OnDidGetRegistrationForReady( |
get_for_ready_callbacks_.Remove(request_id); |
} |
+void ServiceWorkerDispatcher::OnDidGetNavigationPreload( |
+ int thread_id, |
+ int request_id, |
+ bool is_enabled, |
+ const std::string& value) { |
+ LOG(ERROR) << "SWDispatcher::OnDidGetNavigationPreload: enabled=" |
+ << is_enabled << ", value=" << value; |
+ WebGetNavigationPreloadCallbacks* callbacks = |
+ pending_get_navigation_preload_callbacks_.Lookup(request_id); |
+ DCHECK(callbacks); |
+ if (!callbacks) |
+ return; |
+ |
+ if (is_enabled) |
+ callbacks->onSuccess(blink::WebString::fromUTF8(value)); |
+ else |
+ callbacks->onSuccess(blink::WebString()); |
+ pending_get_navigation_preload_callbacks_.Remove(request_id); |
+} |
+ |
+void ServiceWorkerDispatcher::OnDidSetNavigationPreload(int thread_id, |
+ int request_id) { |
+ LOG(ERROR) << "SWDispatcher::OnDidSetNavigationPreload"; |
+ WebSetNavigationPreloadCallbacks* callbacks = |
+ pending_set_navigation_preload_callbacks_.Lookup(request_id); |
+ DCHECK(callbacks); |
+ if (!callbacks) |
+ return; |
+ |
+ callbacks->onSuccess(); |
+ pending_set_navigation_preload_callbacks_.Remove(request_id); |
+} |
+ |
void ServiceWorkerDispatcher::OnRegistrationError( |
int thread_id, |
int request_id, |