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 cf46f7dd616bee44247d73721e72d08839f63af3..694d66c391d55ed3b87d44f8d6ae0a4ef58389d8 100644 |
| --- a/content/browser/service_worker/service_worker_version.cc |
| +++ b/content/browser/service_worker/service_worker_version.cc |
| @@ -955,6 +955,7 @@ void ServiceWorkerVersion::OnReportConsoleMessage(int source_identifier, |
| bool ServiceWorkerVersion::OnMessageReceived(const IPC::Message& message) { |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(ServiceWorkerVersion, message) |
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetClient, OnGetClient) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetClients, |
| OnGetClients) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ActivateEventFinished, |
| @@ -1025,6 +1026,31 @@ void ServiceWorkerVersion::DispatchActivateEventAfterStartWorker( |
| } |
| } |
| +void ServiceWorkerVersion::OnGetClient(int request_id, const std::string& id) { |
|
nhiroki
2016/02/08 06:27:02
id -> client_uuid
jungkees
2016/02/12 15:03:21
Done.
|
| + TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", "ServiceWorkerVersion::OnGetClient", |
| + request_id, "id", id); |
|
nhiroki
2016/02/08 06:27:02
ditto.
jungkees
2016/02/12 15:03:21
Done.
|
| + service_worker_client_utils::GetClient( |
| + weak_factory_.GetWeakPtr(), id, context_, |
| + base::Bind(&ServiceWorkerVersion::OnGetClientFinished, |
| + weak_factory_.GetWeakPtr(), request_id)); |
| +} |
| + |
| +void ServiceWorkerVersion::OnGetClientFinished( |
|
zino
2016/02/05 06:21:44
If you modify this callback to take client_uuid, y
jungkees
2016/02/12 15:03:21
If I change GetClientInfoCallback to take |client_
|
| + int request_id, |
| + const ServiceWorkerClientInfo& client) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::OnGetClient", |
| + request_id, "The retrieved client", &client); |
|
nhiroki
2016/02/08 06:27:02
|&client| might not be very useful for investigati
jungkees
2016/02/12 15:03:21
Addressed. Thanks.
|
| + |
| + // When Clients.matchAll() is called on the script evaluation phase, the |
| + // running status can be STARTING here. |
| + if (running_status() != STARTING && running_status() != RUNNING) |
| + return; |
| + |
| + embedded_worker_->SendMessage( |
| + ServiceWorkerMsg_DidGetClient(request_id, client)); |
| +} |
| + |
| void ServiceWorkerVersion::OnGetClients( |
| int request_id, |
| const ServiceWorkerClientQueryOptions& options) { |