Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1233)

Unified Diff: content/browser/service_worker/service_worker_version.cc

Issue 205563006: Add a status code to install event handled message from Service Worker (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698