Chromium Code Reviews| Index: content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc |
| diff --git a/content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc b/content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc |
| index 97e31738f00709cbbc20012fbec6064162dafd96..6c448410c5cdb1c1cae0e4a2921f22d82f4b625c 100644 |
| --- a/content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc |
| +++ b/content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc |
| @@ -18,7 +18,7 @@ |
| #include "content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.h" |
| #include "content/browser/renderer_host/pepper/pepper_truetype_font_list_host.h" |
| #include "content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h" |
| -#include "net/socket/stream_socket.h" |
| +#include "ppapi/c/ppb_net_address.h" |
| #include "ppapi/host/message_filter_host.h" |
| #include "ppapi/host/ppapi_host.h" |
| #include "ppapi/host/resource_host.h" |
| @@ -104,16 +104,22 @@ scoped_ptr<ResourceHost> ContentBrowserPepperHostFactory::CreateResourceHost( |
| host_, instance, params.pp_resource(), file_system, internal_path)); |
| } |
| case PpapiHostMsg_TCPSocket_Create::ID: { |
| - if (CanCreateSocket()) { |
| - scoped_refptr<ResourceMessageFilter> tcp_socket( |
| - new PepperTCPSocketMessageFilter(host_, |
| - instance, |
| - false)); |
| - return scoped_ptr<ResourceHost>(new MessageFilterHost( |
| - host_->GetPpapiHost(), instance, params.pp_resource(), tcp_socket)); |
| - } else { |
| + ppapi::TCPSocketVersion version; |
| + PP_NetAddress_Family family; |
| + if (!CanCreateSocket() || |
| + !UnpackMessage<PpapiHostMsg_TCPSocket_Create>( |
| + message, &version, &family)) { |
| return scoped_ptr<ResourceHost>(); |
| } |
| + |
| + scoped_refptr<ResourceMessageFilter> tcp_socket( |
| + PepperTCPSocketMessageFilter::Create(this, host_, instance, version, |
| + family)); |
| + if (!tcp_socket) |
| + return scoped_ptr<ResourceHost>(); |
| + |
| + return scoped_ptr<ResourceHost>(new MessageFilterHost( |
| + host_->GetPpapiHost(), instance, params.pp_resource(), tcp_socket)); |
| } |
| case PpapiHostMsg_UDPSocket_Create::ID: { |
| if (CanCreateSocket()) { |
| @@ -177,16 +183,18 @@ scoped_ptr<ResourceHost> ContentBrowserPepperHostFactory::CreateResourceHost( |
| } |
| } |
| if (message.type() == PpapiHostMsg_TCPSocket_CreatePrivate::ID) { |
| - if (CanCreateSocket()) { |
| - scoped_refptr<ResourceMessageFilter> tcp_socket( |
| - new PepperTCPSocketMessageFilter(host_, |
| - instance, |
| - true)); |
| - return scoped_ptr<ResourceHost>(new MessageFilterHost( |
| - host_->GetPpapiHost(), instance, params.pp_resource(), tcp_socket)); |
| - } else { |
| + if (!CanCreateSocket()) |
| return scoped_ptr<ResourceHost>(); |
| - } |
| + |
| + scoped_refptr<ResourceMessageFilter> tcp_socket( |
| + PepperTCPSocketMessageFilter::Create( |
| + this, host_, instance, ppapi::TCP_SOCKET_VERSION_PRIVATE, |
| + PP_NETADDRESS_FAMILY_UNSPECIFIED)); |
| + if (!tcp_socket) |
| + return scoped_ptr<ResourceHost>(); |
| + |
| + return scoped_ptr<ResourceHost>(new MessageFilterHost( |
| + host_->GetPpapiHost(), instance, params.pp_resource(), tcp_socket)); |
|
bbudge
2013/09/17 19:42:18
There's a lot of code in common here and above. Co
yzshen1
2013/09/18 16:56:26
Done.
|
| } |
| if (message.type() == PpapiHostMsg_UDPSocket_CreatePrivate::ID) { |
| if (CanCreateSocket()) { |
| @@ -218,17 +226,13 @@ scoped_ptr<ResourceHost> ContentBrowserPepperHostFactory::CreateResourceHost( |
| scoped_ptr<ppapi::host::ResourceHost> |
| ContentBrowserPepperHostFactory::CreateAcceptedTCPSocket( |
| PP_Instance instance, |
| - bool private_api, |
| - net::StreamSocket* socket) { |
| - scoped_ptr<net::StreamSocket> s(socket); |
| - |
| + ppapi::TCPSocketVersion version, |
| + scoped_ptr<net::TCPSocket> socket) { |
| if (!CanCreateSocket()) |
| return scoped_ptr<ResourceHost>(); |
| scoped_refptr<ResourceMessageFilter> tcp_socket( |
| - new PepperTCPSocketMessageFilter(host_, |
| - instance, |
| - private_api, |
| - s.release())); |
| + new PepperTCPSocketMessageFilter(host_, instance, version, |
|
bbudge
2013/09/17 19:42:18
Why don't you call PepperTCPSocketMessageFilter::C
yzshen1
2013/09/18 16:56:26
Because this class has a static Create() method fo
|
| + socket.Pass())); |
| return scoped_ptr<ResourceHost>(new MessageFilterHost( |
| host_->GetPpapiHost(), instance, 0, tcp_socket)); |
| } |