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

Side by Side Diff: content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc

Issue 2867693004: Snapshot of all changes to get jumbo in blink and content.
Patch Set: Exclude certain files from jumbo because of a Windows problem Created 3 years, 3 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer_host/pepper/content_browser_pepper_host_facto ry.h" 5 #include "content/browser/renderer_host/pepper/content_browser_pepper_host_facto ry.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 19 matching lines...) Expand all
30 #include "ppapi/host/resource_host.h" 30 #include "ppapi/host/resource_host.h"
31 #include "ppapi/proxy/ppapi_messages.h" 31 #include "ppapi/proxy/ppapi_messages.h"
32 #include "ppapi/shared_impl/ppapi_permissions.h" 32 #include "ppapi/shared_impl/ppapi_permissions.h"
33 33
34 #if defined(OS_CHROMEOS) 34 #if defined(OS_CHROMEOS)
35 #include "content/browser/renderer_host/pepper/pepper_vpn_provider_message_filte r_chromeos.h" 35 #include "content/browser/renderer_host/pepper/pepper_vpn_provider_message_filte r_chromeos.h"
36 #endif 36 #endif
37 37
38 using ppapi::host::MessageFilterHost; 38 using ppapi::host::MessageFilterHost;
39 using ppapi::host::ResourceHost; 39 using ppapi::host::ResourceHost;
40 using ppapi::host::ResourceMessageFilter;
41 using ppapi::proxy::SerializedTrueTypeFontDesc; 40 using ppapi::proxy::SerializedTrueTypeFontDesc;
42 using ppapi::UnpackMessage; 41 using ppapi::UnpackMessage;
43 42
44 namespace content { 43 namespace content {
45 44
46 namespace { 45 namespace {
47 46
48 const size_t kMaxSocketsAllowed = 1024; 47 const size_t kMaxSocketsAllowed = 1024;
49 48
50 bool CanCreateSocket() { 49 bool CanCreateSocket() {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 } 91 }
93 case PpapiHostMsg_Gamepad_Create::ID: { 92 case PpapiHostMsg_Gamepad_Create::ID: {
94 return std::unique_ptr<ResourceHost>( 93 return std::unique_ptr<ResourceHost>(
95 new PepperGamepadHost(host_, instance, resource)); 94 new PepperGamepadHost(host_, instance, resource));
96 } 95 }
97 case PpapiHostMsg_NetworkProxy_Create::ID: { 96 case PpapiHostMsg_NetworkProxy_Create::ID: {
98 return std::unique_ptr<ResourceHost>( 97 return std::unique_ptr<ResourceHost>(
99 new PepperNetworkProxyHost(host_, instance, resource)); 98 new PepperNetworkProxyHost(host_, instance, resource));
100 } 99 }
101 case PpapiHostMsg_HostResolver_Create::ID: { 100 case PpapiHostMsg_HostResolver_Create::ID: {
102 scoped_refptr<ResourceMessageFilter> host_resolver( 101 scoped_refptr<ppapi::host::ResourceMessageFilter> host_resolver(
103 new PepperHostResolverMessageFilter(host_, instance, false)); 102 new PepperHostResolverMessageFilter(host_, instance, false));
104 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 103 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
105 host_->GetPpapiHost(), instance, resource, host_resolver)); 104 host_->GetPpapiHost(), instance, resource, host_resolver));
106 } 105 }
107 case PpapiHostMsg_FileRef_CreateForFileAPI::ID: { 106 case PpapiHostMsg_FileRef_CreateForFileAPI::ID: {
108 PP_Resource file_system; 107 PP_Resource file_system;
109 std::string internal_path; 108 std::string internal_path;
110 if (!UnpackMessage<PpapiHostMsg_FileRef_CreateForFileAPI>( 109 if (!UnpackMessage<PpapiHostMsg_FileRef_CreateForFileAPI>(
111 message, &file_system, &internal_path)) { 110 message, &file_system, &internal_path)) {
112 NOTREACHED(); 111 NOTREACHED();
113 return std::unique_ptr<ResourceHost>(); 112 return std::unique_ptr<ResourceHost>();
114 } 113 }
115 return std::unique_ptr<ResourceHost>(new PepperFileRefHost( 114 return std::unique_ptr<ResourceHost>(new PepperFileRefHost(
116 host_, instance, resource, file_system, internal_path)); 115 host_, instance, resource, file_system, internal_path));
117 } 116 }
118 case PpapiHostMsg_TCPSocket_Create::ID: { 117 case PpapiHostMsg_TCPSocket_Create::ID: {
119 ppapi::TCPSocketVersion version; 118 ppapi::TCPSocketVersion version;
120 if (!UnpackMessage<PpapiHostMsg_TCPSocket_Create>(message, &version) || 119 if (!UnpackMessage<PpapiHostMsg_TCPSocket_Create>(message, &version) ||
121 version == ppapi::TCP_SOCKET_VERSION_PRIVATE) { 120 version == ppapi::TCP_SOCKET_VERSION_PRIVATE) {
122 return std::unique_ptr<ResourceHost>(); 121 return std::unique_ptr<ResourceHost>();
123 } 122 }
124 123
125 return CreateNewTCPSocket(instance, resource, version); 124 return CreateNewTCPSocket(instance, resource, version);
126 } 125 }
127 case PpapiHostMsg_UDPSocket_Create::ID: { 126 case PpapiHostMsg_UDPSocket_Create::ID: {
128 if (CanCreateSocket()) { 127 if (CanCreateSocket()) {
129 scoped_refptr<ResourceMessageFilter> udp_socket( 128 scoped_refptr<ppapi::host::ResourceMessageFilter> udp_socket(
130 new PepperUDPSocketMessageFilter(host_, instance, false)); 129 new PepperUDPSocketMessageFilter(host_, instance, false));
131 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 130 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
132 host_->GetPpapiHost(), instance, resource, udp_socket)); 131 host_->GetPpapiHost(), instance, resource, udp_socket));
133 } else { 132 } else {
134 return std::unique_ptr<ResourceHost>(); 133 return std::unique_ptr<ResourceHost>();
135 } 134 }
136 } 135 }
137 } 136 }
138 137
139 // Dev interfaces. 138 // Dev interfaces.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 182 }
184 } 183 }
185 184
186 // Permissions for the following interfaces will be checked at the 185 // Permissions for the following interfaces will be checked at the
187 // time of the corresponding instance's methods calls (because 186 // time of the corresponding instance's methods calls (because
188 // permission check can be performed only on the UI 187 // permission check can be performed only on the UI
189 // thread). Currently these interfaces are available only for 188 // thread). Currently these interfaces are available only for
190 // whitelisted apps which may not have access to the other private 189 // whitelisted apps which may not have access to the other private
191 // interfaces. 190 // interfaces.
192 if (message.type() == PpapiHostMsg_HostResolver_CreatePrivate::ID) { 191 if (message.type() == PpapiHostMsg_HostResolver_CreatePrivate::ID) {
193 scoped_refptr<ResourceMessageFilter> host_resolver( 192 scoped_refptr<ppapi::host::ResourceMessageFilter> host_resolver(
194 new PepperHostResolverMessageFilter(host_, instance, true)); 193 new PepperHostResolverMessageFilter(host_, instance, true));
195 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 194 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
196 host_->GetPpapiHost(), instance, resource, host_resolver)); 195 host_->GetPpapiHost(), instance, resource, host_resolver));
197 } 196 }
198 if (message.type() == PpapiHostMsg_TCPServerSocket_CreatePrivate::ID) { 197 if (message.type() == PpapiHostMsg_TCPServerSocket_CreatePrivate::ID) {
199 if (CanCreateSocket()) { 198 if (CanCreateSocket()) {
200 scoped_refptr<ResourceMessageFilter> tcp_server_socket( 199 scoped_refptr<ppapi::host::ResourceMessageFilter> tcp_server_socket(
201 new PepperTCPServerSocketMessageFilter(this, host_, instance, true)); 200 new PepperTCPServerSocketMessageFilter(this, host_, instance, true));
202 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 201 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
203 host_->GetPpapiHost(), instance, resource, tcp_server_socket)); 202 host_->GetPpapiHost(), instance, resource, tcp_server_socket));
204 } else { 203 } else {
205 return std::unique_ptr<ResourceHost>(); 204 return std::unique_ptr<ResourceHost>();
206 } 205 }
207 } 206 }
208 if (message.type() == PpapiHostMsg_TCPSocket_CreatePrivate::ID) { 207 if (message.type() == PpapiHostMsg_TCPSocket_CreatePrivate::ID) {
209 return CreateNewTCPSocket(instance, resource, 208 return CreateNewTCPSocket(instance, resource,
210 ppapi::TCP_SOCKET_VERSION_PRIVATE); 209 ppapi::TCP_SOCKET_VERSION_PRIVATE);
211 } 210 }
212 if (message.type() == PpapiHostMsg_UDPSocket_CreatePrivate::ID) { 211 if (message.type() == PpapiHostMsg_UDPSocket_CreatePrivate::ID) {
213 if (CanCreateSocket()) { 212 if (CanCreateSocket()) {
214 scoped_refptr<ResourceMessageFilter> udp_socket( 213 scoped_refptr<ppapi::host::ResourceMessageFilter> udp_socket(
215 new PepperUDPSocketMessageFilter(host_, instance, true)); 214 new PepperUDPSocketMessageFilter(host_, instance, true));
216 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 215 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
217 host_->GetPpapiHost(), instance, resource, udp_socket)); 216 host_->GetPpapiHost(), instance, resource, udp_socket));
218 } else { 217 } else {
219 return std::unique_ptr<ResourceHost>(); 218 return std::unique_ptr<ResourceHost>();
220 } 219 }
221 } 220 }
222 if (message.type() == PpapiHostMsg_NetworkMonitor_Create::ID) { 221 if (message.type() == PpapiHostMsg_NetworkMonitor_Create::ID) {
223 return std::unique_ptr<ResourceHost>( 222 return std::unique_ptr<ResourceHost>(
224 new PepperNetworkMonitorHost(host_, instance, resource)); 223 new PepperNetworkMonitorHost(host_, instance, resource));
225 } 224 }
226 225
227 // Flash interfaces. 226 // Flash interfaces.
228 if (GetPermissions().HasPermission(ppapi::PERMISSION_FLASH)) { 227 if (GetPermissions().HasPermission(ppapi::PERMISSION_FLASH)) {
229 switch (message.type()) { 228 switch (message.type()) {
230 case PpapiHostMsg_FlashFile_Create::ID: { 229 case PpapiHostMsg_FlashFile_Create::ID: {
231 scoped_refptr<ResourceMessageFilter> file_filter( 230 scoped_refptr<ppapi::host::ResourceMessageFilter> file_filter(
232 new PepperFlashFileMessageFilter(instance, host_)); 231 new PepperFlashFileMessageFilter(instance, host_));
233 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 232 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
234 host_->GetPpapiHost(), instance, resource, file_filter)); 233 host_->GetPpapiHost(), instance, resource, file_filter));
235 } 234 }
236 } 235 }
237 } 236 }
238 237
239 return std::unique_ptr<ResourceHost>(); 238 return std::unique_ptr<ResourceHost>();
240 } 239 }
241 240
242 std::unique_ptr<ppapi::host::ResourceHost> 241 std::unique_ptr<ppapi::host::ResourceHost>
243 ContentBrowserPepperHostFactory::CreateAcceptedTCPSocket( 242 ContentBrowserPepperHostFactory::CreateAcceptedTCPSocket(
244 PP_Instance instance, 243 PP_Instance instance,
245 ppapi::TCPSocketVersion version, 244 ppapi::TCPSocketVersion version,
246 std::unique_ptr<net::TCPSocket> socket) { 245 std::unique_ptr<net::TCPSocket> socket) {
247 if (!CanCreateSocket()) 246 if (!CanCreateSocket())
248 return std::unique_ptr<ResourceHost>(); 247 return std::unique_ptr<ResourceHost>();
249 scoped_refptr<ResourceMessageFilter> tcp_socket( 248 scoped_refptr<ppapi::host::ResourceMessageFilter> tcp_socket(
250 new PepperTCPSocketMessageFilter(host_, instance, version, 249 new PepperTCPSocketMessageFilter(host_, instance, version,
251 std::move(socket))); 250 std::move(socket)));
252 return std::unique_ptr<ResourceHost>( 251 return std::unique_ptr<ResourceHost>(
253 new MessageFilterHost(host_->GetPpapiHost(), instance, 0, tcp_socket)); 252 new MessageFilterHost(host_->GetPpapiHost(), instance, 0, tcp_socket));
254 } 253 }
255 254
256 std::unique_ptr<ppapi::host::ResourceHost> 255 std::unique_ptr<ppapi::host::ResourceHost>
257 ContentBrowserPepperHostFactory::CreateNewTCPSocket( 256 ContentBrowserPepperHostFactory::CreateNewTCPSocket(
258 PP_Instance instance, 257 PP_Instance instance,
259 PP_Resource resource, 258 PP_Resource resource,
260 ppapi::TCPSocketVersion version) { 259 ppapi::TCPSocketVersion version) {
261 if (!CanCreateSocket()) 260 if (!CanCreateSocket())
262 return std::unique_ptr<ResourceHost>(); 261 return std::unique_ptr<ResourceHost>();
263 262
264 scoped_refptr<ResourceMessageFilter> tcp_socket( 263 scoped_refptr<ppapi::host::ResourceMessageFilter> tcp_socket(
265 new PepperTCPSocketMessageFilter(this, host_, instance, version)); 264 new PepperTCPSocketMessageFilter(this, host_, instance, version));
266 if (!tcp_socket.get()) 265 if (!tcp_socket.get())
267 return std::unique_ptr<ResourceHost>(); 266 return std::unique_ptr<ResourceHost>();
268 267
269 return std::unique_ptr<ResourceHost>(new MessageFilterHost( 268 return std::unique_ptr<ResourceHost>(new MessageFilterHost(
270 host_->GetPpapiHost(), instance, resource, tcp_socket)); 269 host_->GetPpapiHost(), instance, resource, tcp_socket));
271 } 270 }
272 271
273 const ppapi::PpapiPermissions& ContentBrowserPepperHostFactory::GetPermissions() 272 const ppapi::PpapiPermissions& ContentBrowserPepperHostFactory::GetPermissions()
274 const { 273 const {
275 return host_->GetPpapiHost()->permissions(); 274 return host_->GetPpapiHost()->permissions();
276 } 275 }
277 276
278 } // namespace content 277 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698