| Index: content/browser/service_worker/service_worker_dispatcher_host.cc
|
| diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| index 2c19cabaf95d343fb674a4d76c1941bdd3ac7b8a..99f640e0396da77362ce29b52d20dba08fff9f52 100644
|
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| @@ -171,6 +171,10 @@ bool ServiceWorkerDispatcherHost::OnMessageReceived(
|
| OnGetRegistrations)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrationForReady,
|
| OnGetRegistrationForReady)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SetNavigationPreload,
|
| + OnSetNavigationPreload)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetNavigationPreload,
|
| + OnGetNavigationPreload)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderCreated,
|
| OnProviderCreated)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderDestroyed,
|
| @@ -699,6 +703,46 @@ void ServiceWorkerDispatcherHost::OnGetRegistrationForReady(
|
| }
|
| }
|
|
|
| +void ServiceWorkerDispatcherHost::OnSetNavigationPreload(
|
| + int thread_id,
|
| + int request_id,
|
| + int handle_id,
|
| + const std::string& value) {
|
| + LOG(ERROR) << "ServiceWorkerDispatcherHost::OnSetNavigationPreload: value="
|
| + << value;
|
| + ServiceWorkerHandle* handle = handles_.Lookup(handle_id);
|
| + if (!handle) {
|
| + bad_message::ReceivedBadMessage(this,
|
| + bad_message::SWDH_POST_MESSAGE /* XXX */);
|
| + return;
|
| + }
|
| + ServiceWorkerVersion* version = handle->version();
|
| + if (version->is_navigation_preload_enabled() &&
|
| + version->navigation_preload_value() == value) {
|
| + Send(new ServiceWorkerMsg_DidSetNavigationPreload(thread_id, request_id));
|
| + return;
|
| + }
|
| + handle->version()->set_navigation_preload_enabled(true, value);
|
| + Send(new ServiceWorkerMsg_DidSetNavigationPreload(thread_id, request_id));
|
| + // TODO(falken): Persist the value in storage.
|
| +}
|
| +
|
| +void ServiceWorkerDispatcherHost::OnGetNavigationPreload(int thread_id,
|
| + int request_id,
|
| + int handle_id) {
|
| + LOG(ERROR) << "ServiceWorkerDispatcherHost::OnGetNavigationPreload";
|
| + ServiceWorkerHandle* handle = handles_.Lookup(handle_id);
|
| + if (!handle) {
|
| + bad_message::ReceivedBadMessage(this,
|
| + bad_message::SWDH_POST_MESSAGE /* XXX */);
|
| + return;
|
| + }
|
| + const ServiceWorkerVersion* version = handle->version();
|
| + Send(new ServiceWorkerMsg_DidGetNavigationPreload(
|
| + thread_id, request_id, version->is_navigation_preload_enabled(),
|
| + version->navigation_preload_value()));
|
| +}
|
| +
|
| void ServiceWorkerDispatcherHost::OnPostMessageToWorker(
|
| int handle_id,
|
| int provider_id,
|
|
|