| 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..2fef377f1bf97c0b2e84af18f1c4cc2305308941 100644
|
| --- a/content/child/service_worker/service_worker_dispatcher.cc
|
| +++ b/content/child/service_worker/service_worker_dispatcher.cc
|
| @@ -79,6 +79,8 @@ void ServiceWorkerDispatcher::OnMessageReceived(const IPC::Message& msg) {
|
| OnDidGetRegistrations)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetRegistrationForReady,
|
| OnDidGetRegistrationForReady)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidEnableNavigationPreload,
|
| + OnDidEnableNavigationPreload)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError,
|
| OnRegistrationError)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUpdateError,
|
| @@ -89,6 +91,8 @@ void ServiceWorkerDispatcher::OnMessageReceived(const IPC::Message& msg) {
|
| OnGetRegistrationError)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerGetRegistrationsError,
|
| OnGetRegistrationsError)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_EnableNavigationPreloadError,
|
| + OnEnableNavigationPreloadError)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerStateChanged,
|
| OnServiceWorkerStateChanged)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SetVersionAttributes,
|
| @@ -206,6 +210,18 @@ void ServiceWorkerDispatcher::GetRegistrationForReady(
|
| CurrentWorkerId(), request_id, provider_id));
|
| }
|
|
|
| +void ServiceWorkerDispatcher::EnableNavigationPreload(
|
| + int provider_id,
|
| + int64_t registration_id,
|
| + bool enable,
|
| + std::unique_ptr<WebEnableNavigationPreloadCallbacks> callbacks) {
|
| + DCHECK(callbacks);
|
| + int request_id =
|
| + enable_navigation_preload_callbacks_.Add(callbacks.release());
|
| + thread_safe_sender_->Send(new ServiceWorkerHostMsg_EnableNavigationPreload(
|
| + CurrentWorkerId(), request_id, provider_id, registration_id, enable));
|
| +}
|
| +
|
| void ServiceWorkerDispatcher::AddProviderContext(
|
| ServiceWorkerProviderContext* provider_context) {
|
| DCHECK(provider_context);
|
| @@ -520,6 +536,17 @@ void ServiceWorkerDispatcher::OnDidGetRegistrationForReady(
|
| get_for_ready_callbacks_.Remove(request_id);
|
| }
|
|
|
| +void ServiceWorkerDispatcher::OnDidEnableNavigationPreload(int thread_id,
|
| + int request_id) {
|
| + WebEnableNavigationPreloadCallbacks* callbacks =
|
| + enable_navigation_preload_callbacks_.Lookup(request_id);
|
| + DCHECK(callbacks);
|
| + if (!callbacks)
|
| + return;
|
| + callbacks->onSuccess();
|
| + enable_navigation_preload_callbacks_.Remove(request_id);
|
| +}
|
| +
|
| void ServiceWorkerDispatcher::OnRegistrationError(
|
| int thread_id,
|
| int request_id,
|
| @@ -632,6 +659,20 @@ void ServiceWorkerDispatcher::OnGetRegistrationsError(
|
| pending_get_registrations_callbacks_.Remove(request_id);
|
| }
|
|
|
| +void ServiceWorkerDispatcher::OnEnableNavigationPreloadError(
|
| + int thread_id,
|
| + int request_id,
|
| + WebServiceWorkerError::ErrorType error_type,
|
| + const base::string16& message) {
|
| + WebEnableNavigationPreloadCallbacks* callbacks =
|
| + enable_navigation_preload_callbacks_.Lookup(request_id);
|
| + DCHECK(callbacks);
|
| + if (!callbacks)
|
| + return;
|
| + callbacks->onError(WebServiceWorkerError(error_type, message));
|
| + enable_navigation_preload_callbacks_.Remove(request_id);
|
| +}
|
| +
|
| void ServiceWorkerDispatcher::OnServiceWorkerStateChanged(
|
| int thread_id,
|
| int handle_id,
|
|
|