| 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..c4cd44b6d71205ca68628a8e775e06874f08507a 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -74,6 +74,20 @@ void HandleInstallFinished(const StatusCallback& callback,
|
| callback.Run(SERVICE_WORKER_OK);
|
| }
|
|
|
| +void HandleFetchResponse(const ServiceWorkerVersion::FetchCallback& callback,
|
| + ServiceWorkerStatusCode status,
|
| + const IPC::Message& message) {
|
| + Tuple1<ServiceWorkerFetchResponse> response;
|
| + if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) {
|
| + NOTREACHED() << "Got unexpected response for FetchEvent: "
|
| + << message.type();
|
| + callback.Run(SERVICE_WORKER_ERROR_FAILED, response.a);
|
| + return;
|
| + }
|
| + ServiceWorkerHostMsg_FetchEventFinished::Read(&message, &response);
|
| + callback.Run(status, response.a);
|
| +}
|
| +
|
| } // namespace
|
|
|
| ServiceWorkerVersion::ServiceWorkerVersion(
|
| @@ -194,13 +208,12 @@ 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 FetchCallback& callback) {
|
| + SendMessageAndRegisterCallback(
|
| + ServiceWorkerMsg_FetchEvent(request),
|
| + base::Bind(&HandleFetchResponse, callback));
|
| }
|
|
|
| void ServiceWorkerVersion::AddProcessToWorker(int process_id) {
|
|
|