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

Unified Diff: content/browser/renderer_host/pepper/content_browser_pepper_host_factory.cc

Issue 24195004: PPB_TCPSocket: add support for TCP server socket operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698