Chromium Code Reviews| 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) { |