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

Unified Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 2388023002: service worker: navigation preload basic setters/getters and flag
Patch Set: idl Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698