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 fade655ca6c776b425fb9cfb1a995e62a7a17a2b..405cf6b0e1c345fcf681c6daa0e9dcd91af1dd81 100644 |
| --- a/content/browser/service_worker/service_worker_version.cc |
| +++ b/content/browser/service_worker/service_worker_version.cc |
| @@ -85,6 +85,29 @@ void HandleEventFinished(base::WeakPtr<ServiceWorkerVersion> version, |
| callback.Run(SERVICE_WORKER_OK); |
| } |
| +void HandleInstallEventFinished(base::WeakPtr<ServiceWorkerVersion> version, |
|
kinuko
2014/03/25 11:16:49
I think we'll want to use this too for activate ev
falken
2014/03/26 07:53:56
Done.
|
| + const StatusCallback& callback, |
| + ServiceWorkerStatusCode status, |
| + const IPC::Message& message) { |
| + if (status != SERVICE_WORKER_OK) { |
| + version->SetStatus(ServiceWorkerVersion::NEW); |
| + callback.Run(status); |
| + return; |
| + } |
| + if (message.type() != ServiceWorkerHostMsg_InstallEventFinished::ID) { |
| + NOTREACHED() << "Got unexpected response for InstallEvent: " |
| + << message.type(); |
| + version->SetStatus(ServiceWorkerVersion::NEW); |
| + callback.Run(SERVICE_WORKER_ERROR_FAILED); |
| + return; |
| + } |
| + Tuple1<ServiceWorkerInstallEventResult> result; |
| + ServiceWorkerHostMsg_InstallEventFinished::Read(&message, &result); |
| + if (result.a == SERVICE_WORKER_INSTALL_EVENT_RESULT_REJECTED) |
| + status = SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED; |
| + callback.Run(status); |
| +} |
| + |
| void HandleFetchResponse(const ServiceWorkerVersion::FetchCallback& callback, |
| ServiceWorkerStatusCode status, |
| const IPC::Message& message) { |
| @@ -253,9 +276,8 @@ void ServiceWorkerVersion::DispatchInstallEvent( |
| SetStatus(INSTALLING); |
| SendMessageAndRegisterCallback( |
| ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id), |
| - base::Bind(&HandleEventFinished, weak_factory_.GetWeakPtr(), |
| - ServiceWorkerHostMsg_InstallEventFinished::ID, |
| - callback, INSTALLED, NEW)); |
| + base::Bind( |
| + &HandleInstallEventFinished, weak_factory_.GetWeakPtr(), callback)); |
| } |
| void ServiceWorkerVersion::DispatchActivateEvent( |