Index: content/browser/service_worker/service_worker_provider_host.cc |
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc |
index 8ce0d7c015ee675f576139e9c4bb736855ff92b9..43ab3ae28a24bc962ec0f06aa15a92c099b4cd98 100644 |
--- a/content/browser/service_worker/service_worker_provider_host.cc |
+++ b/content/browser/service_worker/service_worker_provider_host.cc |
@@ -55,6 +55,12 @@ void ServiceWorkerProviderHost::SetActiveVersion( |
if (!dispatcher_host_) |
return; // Could be NULL in some tests. |
+ dispatcher_host_->Send(new ServiceWorkerMsg_SetCurrentServiceWorker( |
+ kDocumentMainThreadId, provider_id(), CreateHandleAndPass(version))); |
+} |
+ |
+ServiceWorkerObjectInfo ServiceWorkerProviderHost::CreateHandleAndPass( |
+ ServiceWorkerVersion* version) { |
ServiceWorkerObjectInfo info; |
if (context_ && version) { |
scoped_ptr<ServiceWorkerHandle> handle = |
@@ -63,9 +69,7 @@ void ServiceWorkerProviderHost::SetActiveVersion( |
info = handle->GetObjectInfo(); |
dispatcher_host_->RegisterServiceWorkerHandle(handle.Pass()); |
} |
- dispatcher_host_->Send( |
- new ServiceWorkerMsg_SetCurrentServiceWorker( |
- kDocumentMainThreadId, provider_id(), info)); |
+ return info; |
} |
void ServiceWorkerProviderHost::SetWaitingVersion( |
@@ -82,7 +86,8 @@ void ServiceWorkerProviderHost::SetWaitingVersion( |
if (!dispatcher_host_) |
return; // Could be NULL in some tests. |
- // TODO(kinuko): dispatch pendingchange event to the document. |
+ dispatcher_host_->Send(new ServiceWorkerMsg_SetWaitingServiceWorker( |
+ kDocumentMainThreadId, provider_id(), CreateHandleAndPass(version))); |
} |
bool ServiceWorkerProviderHost::SetHostedVersionId(int64 version_id) { |