| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/service_worker/service_worker_script_context.h" | 5 #include "content/renderer/service_worker/service_worker_script_context.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "content/child/thread_safe_sender.h" | 10 #include "content/child/thread_safe_sender.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 sender->Send(new ServiceWorkerHostMsg_PostMessageToDocument( | 32 sender->Send(new ServiceWorkerHostMsg_PostMessageToDocument( |
| 33 routing_id, client_id, message, | 33 routing_id, client_id, message, |
| 34 WebMessagePortChannelImpl::ExtractMessagePortIDs(channels.release()))); | 34 WebMessagePortChannelImpl::ExtractMessagePortIDs(channels.release()))); |
| 35 } | 35 } |
| 36 | 36 |
| 37 } // namespace | 37 } // namespace |
| 38 | 38 |
| 39 ServiceWorkerScriptContext::ServiceWorkerScriptContext( | 39 ServiceWorkerScriptContext::ServiceWorkerScriptContext( |
| 40 EmbeddedWorkerContextClient* embedded_context, | 40 EmbeddedWorkerContextClient* embedded_context, |
| 41 blink::WebServiceWorkerContextProxy* proxy) | 41 blink::WebServiceWorkerContextProxy* proxy) |
| 42 : embedded_context_(embedded_context), | 42 : cache_storage_dispatcher_(new ServiceWorkerCacheStorageDispatcher(this)), |
| 43 embedded_context_(embedded_context), |
| 43 proxy_(proxy) { | 44 proxy_(proxy) { |
| 44 } | 45 } |
| 45 | 46 |
| 46 ServiceWorkerScriptContext::~ServiceWorkerScriptContext() {} | 47 ServiceWorkerScriptContext::~ServiceWorkerScriptContext() {} |
| 47 | 48 |
| 48 void ServiceWorkerScriptContext::OnMessageReceived( | 49 void ServiceWorkerScriptContext::OnMessageReceived( |
| 49 const IPC::Message& message) { | 50 const IPC::Message& message) { |
| 50 bool handled = true; | 51 bool handled = true; |
| 51 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message) | 52 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message) |
| 52 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) | 53 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) |
| 53 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) | 54 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) |
| 54 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 55 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
| 55 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) | 56 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) |
| 56 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 57 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
| 57 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | 58 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
| 58 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, | 59 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, |
| 59 OnDidGetClientDocuments) | 60 OnDidGetClientDocuments) |
| 60 IPC_MESSAGE_UNHANDLED(handled = false) | 61 IPC_MESSAGE_UNHANDLED(handled = false) |
| 61 IPC_END_MESSAGE_MAP() | 62 IPC_END_MESSAGE_MAP() |
| 63 |
| 64 // TODO(gavinp): Would it be preferable to put an AddListener() method to |
| 65 // EmbeddedWorkerContextClient? |
| 66 if (!handled) |
| 67 handled = cache_storage_dispatcher_->OnMessageReceived(message); |
| 68 |
| 62 DCHECK(handled); | 69 DCHECK(handled); |
| 63 } | 70 } |
| 64 | 71 |
| 65 void ServiceWorkerScriptContext::DidHandleActivateEvent( | 72 void ServiceWorkerScriptContext::DidHandleActivateEvent( |
| 66 int request_id, | 73 int request_id, |
| 67 blink::WebServiceWorkerEventResult result) { | 74 blink::WebServiceWorkerEventResult result) { |
| 68 Send(new ServiceWorkerHostMsg_ActivateEventFinished( | 75 Send(new ServiceWorkerHostMsg_ActivateEventFinished( |
| 69 GetRoutingID(), request_id, result)); | 76 GetRoutingID(), request_id, result)); |
| 70 } | 77 } |
| 71 | 78 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 FROM_HERE, | 116 FROM_HERE, |
| 110 base::Bind(&SendPostMessageToDocumentOnMainThread, | 117 base::Bind(&SendPostMessageToDocumentOnMainThread, |
| 111 make_scoped_refptr(embedded_context_->thread_safe_sender()), | 118 make_scoped_refptr(embedded_context_->thread_safe_sender()), |
| 112 GetRoutingID(), client_id, message, base::Passed(&channels))); | 119 GetRoutingID(), client_id, message, base::Passed(&channels))); |
| 113 } | 120 } |
| 114 | 121 |
| 115 void ServiceWorkerScriptContext::Send(IPC::Message* message) { | 122 void ServiceWorkerScriptContext::Send(IPC::Message* message) { |
| 116 embedded_context_->Send(message); | 123 embedded_context_->Send(message); |
| 117 } | 124 } |
| 118 | 125 |
| 126 int ServiceWorkerScriptContext::GetRoutingID() const { |
| 127 return embedded_context_->embedded_worker_id(); |
| 128 } |
| 129 |
| 119 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { | 130 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { |
| 120 proxy_->dispatchActivateEvent(request_id); | 131 proxy_->dispatchActivateEvent(request_id); |
| 121 } | 132 } |
| 122 | 133 |
| 123 void ServiceWorkerScriptContext::OnInstallEvent(int request_id, | 134 void ServiceWorkerScriptContext::OnInstallEvent(int request_id, |
| 124 int active_version_id) { | 135 int active_version_id) { |
| 125 proxy_->dispatchInstallEvent(request_id); | 136 proxy_->dispatchInstallEvent(request_id); |
| 126 } | 137 } |
| 127 | 138 |
| 128 void ServiceWorkerScriptContext::OnFetchEvent( | 139 void ServiceWorkerScriptContext::OnFetchEvent( |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 NOTREACHED() << "Got stray response: " << request_id; | 191 NOTREACHED() << "Got stray response: " << request_id; |
| 181 return; | 192 return; |
| 182 } | 193 } |
| 183 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( | 194 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( |
| 184 new blink::WebServiceWorkerClientsInfo); | 195 new blink::WebServiceWorkerClientsInfo); |
| 185 info->clientIDs = client_ids; | 196 info->clientIDs = client_ids; |
| 186 callbacks->onSuccess(info.release()); | 197 callbacks->onSuccess(info.release()); |
| 187 pending_clients_callbacks_.Remove(request_id); | 198 pending_clients_callbacks_.Remove(request_id); |
| 188 } | 199 } |
| 189 | 200 |
| 190 int ServiceWorkerScriptContext::GetRoutingID() const { | |
| 191 return embedded_context_->embedded_worker_id(); | |
| 192 } | |
| 193 | |
| 194 } // namespace content | 201 } // namespace content |
| OLD | NEW |