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 be530d453cc9805ad03e4dcdb6aa7f55c57ea77b..2de6c80ae572d6cda41996c578358b0f25884800 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -306,20 +306,19 @@ void ServiceWorkerVersion::DispatchActivateEvent( |
const StatusCallback& callback) { |
DCHECK_EQ(INSTALLED, status()) << status(); |
SetStatus(ACTIVATING); |
- // TODO(kinuko): Implement. |
- NOTIMPLEMENTED(); |
+ // TODO(dominicc): Also dispatch activate callbacks to the document, |
+ // and activate end callbacks to the service worker and the document. |
HandleInstallPhaseEventFinishedParameters params( |
weak_factory_.GetWeakPtr(), |
- -1 /* dummy message_id */, |
- InstallPhaseEventFinishedMessageReader(), |
+ ServiceWorkerHostMsg_ActivateEventFinished::ID, |
+ base::Bind(&ServiceWorkerHostMsg_ActivateEventFinished::Read), |
callback, |
ACTIVE, |
INSTALLED, |
SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED); |
- RunSoon(base::Bind(&HandleInstallPhaseEventFinished, |
- params, |
- SERVICE_WORKER_OK, |
- IPC::Message(-1, -1, IPC::Message::PRIORITY_NORMAL))); |
+ SendMessageAndRegisterCallback( |
+ ServiceWorkerMsg_ActivateEvent(), |
+ base::Bind(&HandleInstallPhaseEventFinished, params)); |
} |
void ServiceWorkerVersion::DispatchFetchEvent( |