| 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..509b215dfbf53ce12ad47b83d7cd50472af46ed4 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,32 @@ void ServiceWorkerVersion::DispatchActivateEventAfterStartWorker(
|
| }
|
| }
|
|
|
| +void ServiceWorkerVersion::OnGetClient(int request_id,
|
| + const std::string& client_uuid) {
|
| + TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", "ServiceWorkerVersion::OnGetClient",
|
| + request_id, "client_uuid", client_uuid);
|
| + service_worker_client_utils::GetClient(
|
| + weak_factory_.GetWeakPtr(), client_uuid, context_,
|
| + base::Bind(&ServiceWorkerVersion::OnGetClientFinished,
|
| + weak_factory_.GetWeakPtr(), request_id));
|
| +}
|
| +
|
| +void ServiceWorkerVersion::OnGetClientFinished(
|
| + int request_id,
|
| + const ServiceWorkerClientInfo& client) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::OnGetClient",
|
| + request_id, "client_type", client.client_type);
|
| +
|
| + // 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) {
|
|
|