Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(690)

Side by Side Diff: content/renderer/service_worker/service_worker_script_context.cc

Issue 379303002: Content blink::WebServiceWorkerCacheStorage implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: meets presubmit! Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"
11 #include "content/child/webmessageportchannel_impl.h" 11 #include "content/child/webmessageportchannel_impl.h"
12 #include "content/common/service_worker/service_worker_messages.h" 12 #include "content/common/service_worker/service_worker_messages.h"
13 #include "content/renderer/service_worker/embedded_worker_context_client.h" 13 #include "content/renderer/service_worker/embedded_worker_context_client.h"
14 #include "content/renderer/service_worker/service_worker_cache_storage_dispatche r.h"
14 #include "ipc/ipc_message.h" 15 #include "ipc/ipc_message.h"
15 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" 16 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
16 #include "third_party/WebKit/public/platform/WebServiceWorkerRequest.h" 17 #include "third_party/WebKit/public/platform/WebServiceWorkerRequest.h"
17 #include "third_party/WebKit/public/platform/WebString.h" 18 #include "third_party/WebKit/public/platform/WebString.h"
18 #include "third_party/WebKit/public/platform/WebURL.h" 19 #include "third_party/WebKit/public/platform/WebURL.h"
19 #include "third_party/WebKit/public/web/WebServiceWorkerContextClient.h" 20 #include "third_party/WebKit/public/web/WebServiceWorkerContextClient.h"
20 #include "third_party/WebKit/public/web/WebServiceWorkerContextProxy.h" 21 #include "third_party/WebKit/public/web/WebServiceWorkerContextProxy.h"
21 22
22 namespace content { 23 namespace content {
23 24
24 namespace { 25 namespace {
25 26
26 void SendPostMessageToDocumentOnMainThread( 27 void SendPostMessageToDocumentOnMainThread(
27 ThreadSafeSender* sender, 28 ThreadSafeSender* sender,
28 int routing_id, 29 int routing_id,
29 int client_id, 30 int client_id,
30 const base::string16& message, 31 const base::string16& message,
31 scoped_ptr<blink::WebMessagePortChannelArray> channels) { 32 scoped_ptr<blink::WebMessagePortChannelArray> channels) {
32 sender->Send(new ServiceWorkerHostMsg_PostMessageToDocument( 33 sender->Send(new ServiceWorkerHostMsg_PostMessageToDocument(
33 routing_id, client_id, message, 34 routing_id, client_id, message,
34 WebMessagePortChannelImpl::ExtractMessagePortIDs(channels.release()))); 35 WebMessagePortChannelImpl::ExtractMessagePortIDs(channels.release())));
35 } 36 }
36 37
37 } // namespace 38 } // namespace
38 39
39 ServiceWorkerScriptContext::ServiceWorkerScriptContext( 40 ServiceWorkerScriptContext::ServiceWorkerScriptContext(
40 EmbeddedWorkerContextClient* embedded_context, 41 EmbeddedWorkerContextClient* embedded_context,
41 blink::WebServiceWorkerContextProxy* proxy) 42 blink::WebServiceWorkerContextProxy* proxy)
42 : embedded_context_(embedded_context), 43 : cache_storage_dispatcher_(new ServiceWorkerCacheStorageDispatcher(this)),
44 embedded_context_(embedded_context),
43 proxy_(proxy) { 45 proxy_(proxy) {
44 } 46 }
45 47
46 ServiceWorkerScriptContext::~ServiceWorkerScriptContext() {} 48 ServiceWorkerScriptContext::~ServiceWorkerScriptContext() {}
47 49
48 void ServiceWorkerScriptContext::OnMessageReceived( 50 void ServiceWorkerScriptContext::OnMessageReceived(
49 const IPC::Message& message) { 51 const IPC::Message& message) {
50 bool handled = true; 52 bool handled = true;
51 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message) 53 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message)
52 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) 54 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent)
53 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) 55 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent)
54 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) 56 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent)
55 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) 57 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent)
56 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) 58 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent)
57 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) 59 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage)
58 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, 60 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments,
59 OnDidGetClientDocuments) 61 OnDidGetClientDocuments)
60 IPC_MESSAGE_UNHANDLED(handled = false) 62 IPC_MESSAGE_UNHANDLED(handled = false)
61 IPC_END_MESSAGE_MAP() 63 IPC_END_MESSAGE_MAP()
64
65 if (!handled)
66 handled = cache_storage_dispatcher_->OnMessageReceived(message);
67
62 DCHECK(handled); 68 DCHECK(handled);
63 } 69 }
64 70
65 void ServiceWorkerScriptContext::DidHandleActivateEvent( 71 void ServiceWorkerScriptContext::DidHandleActivateEvent(
66 int request_id, 72 int request_id,
67 blink::WebServiceWorkerEventResult result) { 73 blink::WebServiceWorkerEventResult result) {
68 Send(new ServiceWorkerHostMsg_ActivateEventFinished( 74 Send(new ServiceWorkerHostMsg_ActivateEventFinished(
69 GetRoutingID(), request_id, result)); 75 GetRoutingID(), request_id, result));
70 } 76 }
71 77
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 info->clientIDs = client_ids; 191 info->clientIDs = client_ids;
186 callbacks->onSuccess(info.release()); 192 callbacks->onSuccess(info.release());
187 pending_clients_callbacks_.Remove(request_id); 193 pending_clients_callbacks_.Remove(request_id);
188 } 194 }
189 195
190 int ServiceWorkerScriptContext::GetRoutingID() const { 196 int ServiceWorkerScriptContext::GetRoutingID() const {
191 return embedded_context_->embedded_worker_id(); 197 return embedded_context_->embedded_worker_id();
192 } 198 }
193 199
194 } // namespace content 200 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698