Chromium Code Reviews| Index: content/browser/service_worker/service_worker_dispatcher_host.cc |
| diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc |
| index b1c8b4d57f0ee302383bde3b56e1ce7b912cca29..fd9d52359356ecbbba92ad5ffa5180c8651964c2 100644 |
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc |
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc |
| @@ -161,6 +161,8 @@ bool ServiceWorkerDispatcherHost::OnMessageReceived( |
| OnUnregisterServiceWorker) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistration, |
| OnGetRegistration) |
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrationForReady, |
| + OnGetRegistrationForReady) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderCreated, |
| OnProviderCreated) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderDestroyed, |
| @@ -490,6 +492,29 @@ void ServiceWorkerDispatcherHost::OnGetRegistration( |
| request_id)); |
| } |
| +void ServiceWorkerDispatcherHost::OnGetRegistrationForReady( |
| + int thread_id, |
| + int request_id, |
| + int provider_id) { |
| + TRACE_EVENT0("ServiceWorker", |
| + "ServiceWorkerDispatcherHost::OnGetRegistrationForReady"); |
| + if (!GetContext()) |
| + return; |
| + ServiceWorkerProviderHost* provider_host = |
| + GetContext()->GetProviderHost(render_process_id_, provider_id); |
| + if (!provider_host || !provider_host->IsContextAlive()) |
| + return; |
| + |
| + TRACE_EVENT_ASYNC_BEGIN0( |
| + "ServiceWorker", |
| + "ServiceWorkerDispatcherHost::GetRegistrationForReady", |
| + request_id); |
| + |
| + provider_host->GetRegistrationForReady( |
|
falken
2015/02/16 09:18:29
GetRegistrationForReady does a DCHECK that it hasn
xiang
2015/02/26 06:52:14
Done. I put it into GetRegistrationForReadyComplet
|
| + base::Bind(&ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete, |
| + this, thread_id, request_id, provider_host->AsWeakPtr())); |
| +} |
| + |
| void ServiceWorkerDispatcherHost::OnPostMessageToWorker( |
| int handle_id, |
| const base::string16& message, |
| @@ -900,6 +925,27 @@ void ServiceWorkerDispatcherHost::GetRegistrationComplete( |
| thread_id, request_id, info, attrs)); |
| } |
| +void ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete( |
| + int thread_id, |
| + int request_id, |
| + base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
| + ServiceWorkerRegistration* registration) { |
| + DCHECK(registration); |
| + TRACE_EVENT_ASYNC_END1("ServiceWorker", |
| + "ServiceWorkerDispatcherHost::GetRegistrationForReady", |
| + request_id, |
| + "Registration ID", |
| + registration ? registration->id() |
| + : kInvalidServiceWorkerRegistrationId); |
| + |
| + ServiceWorkerRegistrationObjectInfo info; |
| + ServiceWorkerVersionAttributes attrs; |
| + GetRegistrationObjectInfoAndVersionAttributes( |
| + provider_host, registration, &info, &attrs); |
| + Send(new ServiceWorkerMsg_DidGetRegistrationForReady( |
| + thread_id, request_id, info, attrs)); |
| +} |
| + |
| void ServiceWorkerDispatcherHost::SendRegistrationError( |
| int thread_id, |
| int request_id, |