| 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 c3f56a1965922ad18d8d924643a4f34f9768a573..97ad1bc244943bb2288b4f7ade8577e1544154d8 100644
|
| --- a/content/renderer/service_worker/service_worker_context_client.cc
|
| +++ b/content/renderer/service_worker/service_worker_context_client.cc
|
| @@ -256,6 +256,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)
|
| @@ -287,6 +288,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) {
|
| @@ -813,6 +823,23 @@ 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;
|
| + }
|
| + scoped_ptr<blink::WebServiceWorkerClientInfo> info;
|
| + info.reset(new blink::WebServiceWorkerClientInfo(
|
| + ToWebServiceWorkerClientInfo(client)));
|
| + callbacks->onSuccess(adoptWebPtr(info.release()));
|
| + context_->client_callbacks.Remove(request_id);
|
| +}
|
| +
|
| void ServiceWorkerContextClient::OnDidGetClients(
|
| int request_id, const std::vector<ServiceWorkerClientInfo>& clients) {
|
| TRACE_EVENT0("ServiceWorker",
|
|
|