| Index: content/renderer/service_worker/service_worker_context_client.cc
|
| diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
|
| index dc8f4d2fa205508fddd2a205226affcc63e42576..b678899e665b1e97fcaafe4f93a287d183f63281 100644
|
| --- a/content/renderer/service_worker/service_worker_context_client.cc
|
| +++ b/content/renderer/service_worker/service_worker_context_client.cc
|
| @@ -261,6 +261,7 @@ void ServiceWorkerContextClient::OnMessageReceived(
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker,
|
| OnCrossOriginMessageToWorker)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse,
|
| OnOpenWindowResponse)
|
| @@ -293,6 +294,15 @@ blink::WebURL ServiceWorkerContextClient::scope() const {
|
| return service_worker_scope_;
|
| }
|
|
|
| +void ServiceWorkerContextClient::getClient(
|
| + const blink::WebString& id,
|
| + blink::WebServiceWorkerClientCallbacks* callbacks) {
|
| + DCHECK(callbacks);
|
| + int request_id = context_->client_callbacks.Add(callbacks);
|
| + Send(new ServiceWorkerHostMsg_GetClient(
|
| + GetRoutingID(), request_id, base::UTF16ToUTF8(base::StringPiece16(id))));
|
| +}
|
| +
|
| void ServiceWorkerContextClient::getClients(
|
| const blink::WebServiceWorkerClientQueryOptions& weboptions,
|
| blink::WebServiceWorkerClientsCallbacks* callbacks) {
|
| @@ -823,6 +833,21 @@ void ServiceWorkerContextClient::OnCrossOriginMessageToWorker(
|
| proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports);
|
| }
|
|
|
| +void ServiceWorkerContextClient::OnDidGetClient(
|
| + int request_id,
|
| + const ServiceWorkerClientInfo& client) {
|
| + TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient");
|
| + blink::WebServiceWorkerClientCallbacks* callbacks =
|
| + context_->client_callbacks.Lookup(request_id);
|
| + if (!callbacks) {
|
| + NOTREACHED() << "Got stray response: " << request_id;
|
| + return;
|
| + }
|
| + callbacks->onSuccess(adoptWebPtr(new blink::WebServiceWorkerClientInfo(
|
| + ToWebServiceWorkerClientInfo(client))));
|
| + context_->client_callbacks.Remove(request_id);
|
| +}
|
| +
|
| void ServiceWorkerContextClient::OnDidGetClients(
|
| int request_id, const std::vector<ServiceWorkerClientInfo>& clients) {
|
| TRACE_EVENT0("ServiceWorker",
|
|
|