Chromium Code Reviews| 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..ae6c6fa532a4f91c6a6b9f343bc81c4356dba652 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,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))); |
|
nhiroki
2016/02/03 09:39:59
Can you declare and initialize |info| at once?
jungkees
2016/02/03 14:15:07
Done.
|
| + 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", |