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 | |
130 class WebServiceWorkerCacheStorage; | |
falken
2014/07/28 04:48:59
this is not meant to be here?
gavinp
2014/07/28 04:55:27
Done.
| |
119 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { | 131 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { |
120 proxy_->dispatchActivateEvent(request_id); | 132 proxy_->dispatchActivateEvent(request_id); |
121 } | 133 } |
122 | 134 |
123 void ServiceWorkerScriptContext::OnInstallEvent(int request_id, | 135 void ServiceWorkerScriptContext::OnInstallEvent(int request_id, |
124 int active_version_id) { | 136 int active_version_id) { |
125 proxy_->dispatchInstallEvent(request_id); | 137 proxy_->dispatchInstallEvent(request_id); |
126 } | 138 } |
127 | 139 |
128 void ServiceWorkerScriptContext::OnFetchEvent( | 140 void ServiceWorkerScriptContext::OnFetchEvent( |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
180 NOTREACHED() << "Got stray response: " << request_id; | 192 NOTREACHED() << "Got stray response: " << request_id; |
181 return; | 193 return; |
182 } | 194 } |
183 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( | 195 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( |
184 new blink::WebServiceWorkerClientsInfo); | 196 new blink::WebServiceWorkerClientsInfo); |
185 info->clientIDs = client_ids; | 197 info->clientIDs = client_ids; |
186 callbacks->onSuccess(info.release()); | 198 callbacks->onSuccess(info.release()); |
187 pending_clients_callbacks_.Remove(request_id); | 199 pending_clients_callbacks_.Remove(request_id); |
188 } | 200 } |
189 | 201 |
190 int ServiceWorkerScriptContext::GetRoutingID() const { | |
191 return embedded_context_->embedded_worker_id(); | |
192 } | |
193 | |
194 } // namespace content | 202 } // namespace content |
OLD | NEW |