| 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 b4ce1c924ba0ea8e7222fec9d2009c05b4ada234..ea853a0d515883b0c677251a95571f62317b2de6 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -892,6 +892,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_OpenWindow,
|
| @@ -944,6 +945,32 @@ void ServiceWorkerVersion::DispatchExtendableMessageEventAfterStartWorker(
|
| request_id, message, sent_message_ports, new_routing_ids));
|
| }
|
|
|
| +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.get() 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) {
|
|
|