Index: content/browser/service_worker/service_worker_version.cc |
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc |
index be530d453cc9805ad03e4dcdb6aa7f55c57ea77b..e8bad15c78254e7c0202da17ec2019ef90bfc350 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -146,6 +146,17 @@ void HandleFetchResponse(const ServiceWorkerVersion::FetchCallback& callback, |
callback.Run(SERVICE_WORKER_OK, result, response); |
} |
+void HandleSyncEventFinished(const StatusCallback& callback, |
+ ServiceWorkerStatusCode status, |
+ const IPC::Message& message) { |
+ if (message.type() != ServiceWorkerHostMsg_SyncEventFinished::ID) { |
+ NOTREACHED() << "Got unexpected response for SyncEvent: " << message.type(); |
+ callback.Run(SERVICE_WORKER_ERROR_FAILED); |
+ return; |
+ } |
+ callback.Run(status); |
+} |
+ |
} // namespace |
ServiceWorkerVersion::ServiceWorkerVersion( |
@@ -331,6 +342,13 @@ void ServiceWorkerVersion::DispatchFetchEvent( |
base::Bind(&HandleFetchResponse, callback)); |
} |
+void ServiceWorkerVersion::DispatchSyncEvent(const StatusCallback& callback) { |
+ DCHECK_EQ(ACTIVE, status()) << status(); |
+ SendMessageAndRegisterCallback( |
+ ServiceWorkerMsg_SyncEvent(), |
+ base::Bind(&HandleSyncEventFinished, callback)); |
+} |
+ |
void ServiceWorkerVersion::AddProcessToWorker(int process_id) { |
DCHECK(!is_shutdown_); |
embedded_worker_->AddProcessReference(process_id); |