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

Side by Side Diff: content/browser/shared_worker/shared_worker_message_filter.cc

Issue 166273002: Add SharedWorkerMessageFilter for the embedded SharedWorker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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
OLDNEW
1 // Copyright (c) 2011 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/browser/worker_host/worker_message_filter.h" 5 #include "content/browser/shared_worker/shared_worker_message_filter.h"
6 6
7 #include "content/browser/devtools/worker_devtools_manager.h"
7 #include "content/browser/message_port_message_filter.h" 8 #include "content/browser/message_port_message_filter.h"
8 #include "content/browser/worker_host/worker_service_impl.h" 9 #include "content/browser/shared_worker/shared_worker_service_impl.h"
10 #include "content/common/devtools_messages.h"
9 #include "content/common/view_messages.h" 11 #include "content/common/view_messages.h"
10 #include "content/common/worker_messages.h" 12 #include "content/common/worker_messages.h"
11 #include "content/public/browser/resource_context.h"
12 13
13 namespace content { 14 namespace content {
14 15
15 WorkerMessageFilter::WorkerMessageFilter( 16 SharedWorkerMessageFilter::SharedWorkerMessageFilter(
16 int render_process_id, 17 int render_process_id,
17 ResourceContext* resource_context, 18 ResourceContext* resource_context,
18 const WorkerStoragePartition& partition, 19 const WorkerStoragePartition& partition,
19 MessagePortMessageFilter* message_port_message_filter) 20 MessagePortMessageFilter* message_port_message_filter)
20 : render_process_id_(render_process_id), 21 : render_process_id_(render_process_id),
21 resource_context_(resource_context), 22 resource_context_(resource_context),
22 partition_(partition), 23 partition_(partition),
23 message_port_message_filter_(message_port_message_filter) { 24 message_port_message_filter_(message_port_message_filter) {
24 // Note: This constructor is called on both IO or UI thread.
25 DCHECK(resource_context);
26 }
27
28 WorkerMessageFilter::~WorkerMessageFilter() {
29 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 25 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
30 } 26 }
31 27
32 void WorkerMessageFilter::OnChannelClosing() { 28 SharedWorkerMessageFilter::~SharedWorkerMessageFilter() {
33 WorkerServiceImpl::GetInstance()->OnWorkerMessageFilterClosing(this); 29 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
34 } 30 }
35 31
36 bool WorkerMessageFilter::OnMessageReceived(const IPC::Message& message, 32 void SharedWorkerMessageFilter::OnChannelClosing() {
37 bool* message_was_ok) { 33 SharedWorkerServiceImpl::GetInstance()->OnSharedWorkerMessageFilterClosing(
34 this);
35 }
36
37 bool SharedWorkerMessageFilter::OnMessageReceived(const IPC::Message& message,
38 bool* message_was_ok) {
38 bool handled = true; 39 bool handled = true;
39 IPC_BEGIN_MESSAGE_MAP_EX(WorkerMessageFilter, message, *message_was_ok) 40 IPC_BEGIN_MESSAGE_MAP_EX(SharedWorkerMessageFilter, message, *message_was_ok)
40 // Worker messages.
41 // Only sent from renderer for now, until we have nested workers.
kinuko 2014/02/14 08:26:32 Can we keep having some (short) informative messag
horo 2014/02/14 08:46:26 Done.
42 IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWorker, OnCreateWorker) 41 IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWorker, OnCreateWorker)
43 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToWorker, OnForwardToWorker) 42 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToWorker, OnForwardToWorker)
44 // Only sent from renderer.
45 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentDetached, OnDocumentDetached) 43 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentDetached, OnDocumentDetached)
44 IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerContextClosed,
45 OnWorkerContextClosed)
46 IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerContextDestroyed,
47 OnWorkerContextDestroyed)
48 IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerScriptLoaded,
49 OnWorkerScriptLoaded)
50 IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerScriptLoadFailed,
51 OnWorkerScriptLoadFailed)
52 IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerConnected,
53 OnWorkerConnected)
54 IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowDatabase, OnAllowDatabase)
55 IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowFileSystem, OnAllowFileSystem)
56 IPC_MESSAGE_HANDLER(WorkerProcessHostMsg_AllowIndexedDB, OnAllowIndexedDB)
46 IPC_MESSAGE_UNHANDLED(handled = false) 57 IPC_MESSAGE_UNHANDLED(handled = false)
47 IPC_END_MESSAGE_MAP_EX() 58 IPC_END_MESSAGE_MAP_EX()
48
49 return handled; 59 return handled;
50 } 60 }
51 61
52 int WorkerMessageFilter::GetNextRoutingID() { 62 int SharedWorkerMessageFilter::GetNextRoutingID() {
53 return message_port_message_filter_->GetNextRoutingID(); 63 return message_port_message_filter_->GetNextRoutingID();
54 } 64 }
55 65
56 void WorkerMessageFilter::OnCreateWorker( 66 void SharedWorkerMessageFilter::OnCreateWorker(
57 const ViewHostMsg_CreateWorker_Params& params, 67 const ViewHostMsg_CreateWorker_Params& params,
58 int* route_id) { 68 int* route_id) {
59 bool url_error = false; 69 bool url_error = false;
60 *route_id = GetNextRoutingID(); 70 *route_id = GetNextRoutingID();
61 WorkerServiceImpl::GetInstance()->CreateWorker( 71 SharedWorkerServiceImpl::GetInstance()->CreateWorker(
62 params, *route_id, this, resource_context_, partition_, &url_error); 72 params, *route_id, this, resource_context_, partition_, &url_error);
63 if (url_error) 73 if (url_error)
64 *route_id = MSG_ROUTING_NONE; 74 *route_id = MSG_ROUTING_NONE;
65 } 75 }
66 76
67 void WorkerMessageFilter::OnForwardToWorker(const IPC::Message& message) { 77 void SharedWorkerMessageFilter::OnForwardToWorker(const IPC::Message& message) {
68 WorkerServiceImpl::GetInstance()->ForwardToWorker(message, this); 78 SharedWorkerServiceImpl::GetInstance()->ForwardToWorker(message, this);
69 } 79 }
70 80
71 void WorkerMessageFilter::OnDocumentDetached(unsigned long long document_id) { 81 void SharedWorkerMessageFilter::OnDocumentDetached(
72 WorkerServiceImpl::GetInstance()->DocumentDetached(document_id, this); 82 unsigned long long document_id) {
83 SharedWorkerServiceImpl::GetInstance()->DocumentDetached(document_id, this);
84 }
85
86 void SharedWorkerMessageFilter::OnWorkerContextClosed(int worker_route_id) {
87 SharedWorkerServiceImpl::GetInstance()->WorkerContextClosed(worker_route_id,
88 this);
89 }
90
91 void SharedWorkerMessageFilter::OnWorkerContextDestroyed(int worker_route_id) {
92 SharedWorkerServiceImpl::GetInstance()->WorkerContextDestroyed(
93 worker_route_id,
94 this);
95 }
96
97 void SharedWorkerMessageFilter::OnWorkerScriptLoaded(int worker_route_id) {
98 SharedWorkerServiceImpl::GetInstance()->WorkerScriptLoaded(worker_route_id,
99 this);
100 }
101
102 void SharedWorkerMessageFilter::OnWorkerScriptLoadFailed(int worker_route_id) {
103 SharedWorkerServiceImpl::GetInstance()->WorkerScriptLoadFailed(
104 worker_route_id,
105 this);
106 }
107
108 void SharedWorkerMessageFilter::OnWorkerConnected(int message_port_id,
109 int worker_route_id) {
110 SharedWorkerServiceImpl::GetInstance()->WorkerConnected(
111 message_port_id,
112 worker_route_id,
113 this);
114 }
115
116 void SharedWorkerMessageFilter::OnAllowDatabase(
117 int worker_route_id,
118 const GURL& url,
119 const base::string16& name,
120 const base::string16& display_name,
121 unsigned long estimated_size,
122 bool* result) {
123 SharedWorkerServiceImpl::GetInstance()->AllowDatabase(worker_route_id,
124 url,
125 name,
126 display_name,
127 estimated_size,
128 result,
129 this);
130 }
131
132 void SharedWorkerMessageFilter::OnAllowFileSystem(int worker_route_id,
133 const GURL& url,
134 bool* result) {
135 SharedWorkerServiceImpl::GetInstance()->AllowFileSystem(worker_route_id,
136 url,
137 result,
138 this);
139 }
140
141 void SharedWorkerMessageFilter::OnAllowIndexedDB(int worker_route_id,
142 const GURL& url,
143 const base::string16& name,
144 bool* result) {
145 SharedWorkerServiceImpl::GetInstance()->AllowIndexedDB(worker_route_id,
146 url,
147 name,
148 result,
149 this);
73 } 150 }
74 151
75 } // namespace content 152 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698