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 7948df57d1dccef5b3b9651a76fbf6b6afd6dfd9..cf7ed090a21ab433bc31e4e84b2ed5a17ada367f 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -74,6 +74,18 @@ void HandleInstallFinished(const StatusCallback& callback, |
callback.Run(SERVICE_WORKER_OK); |
} |
+void HandleFetchResponse(const StatusCallback& callback, |
+ ServiceWorkerStatusCode status, |
+ const IPC::Message& message) { |
+ if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) { |
+ NOTREACHED() << "Got unexpected response for FetchEvent: " |
+ << message.type(); |
+ callback.Run(SERVICE_WORKER_ERROR_FAILED); |
+ return; |
+ } |
+ callback.Run(status); |
+} |
+ |
} // namespace |
ServiceWorkerVersion::ServiceWorkerVersion( |
@@ -194,13 +206,13 @@ void ServiceWorkerVersion::DispatchInstallEvent( |
base::Bind(&HandleInstallFinished, callback)); |
} |
-bool ServiceWorkerVersion::DispatchFetchEvent( |
- const ServiceWorkerFetchRequest& request) { |
- if (status() != RUNNING) |
- return false; |
- return embedded_worker_->SendMessage( |
- kInvalidRequestId, ServiceWorkerMsg_FetchEvent(request)) |
- == SERVICE_WORKER_OK; |
+void ServiceWorkerVersion::DispatchFetchEvent( |
+ const ServiceWorkerFetchRequest& request, |
+ const StatusCallback& callback) { |
+ // TODO(falken): Must check status() == RUNNING? |
+ SendMessageAndRegisterCallback( |
kinuko
2014/02/14 08:56:24
SendMessageAndRegisterCallback internally checks i
falken
2014/02/19 05:32:19
OK, I see. TODO removed.
|
+ ServiceWorkerMsg_FetchEvent(request), |
+ base::Bind(&HandleFetchResponse, callback)); |
} |
void ServiceWorkerVersion::AddProcessToWorker(int process_id) { |