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

Side by Side Diff: ppapi/proxy/tcp_server_socket_private_resource.cc

Issue 22923014: TCPSockets are switched to the new Pepper proxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ppapi/proxy/tcp_server_socket_private_resource.h" 5 #include "ppapi/proxy/tcp_server_socket_private_resource.h"
6 6
7 #include "ppapi/proxy/plugin_dispatcher.h"
8 #include "ppapi/proxy/ppapi_messages.h" 7 #include "ppapi/proxy/ppapi_messages.h"
9 #include "ppapi/proxy/ppb_tcp_socket_private_proxy.h" 8 #include "ppapi/proxy/tcp_socket_private_resource.h"
10 9
11 namespace ppapi { 10 namespace ppapi {
12 namespace proxy { 11 namespace proxy {
13 12
14 TCPServerSocketPrivateResource::TCPServerSocketPrivateResource( 13 TCPServerSocketPrivateResource::TCPServerSocketPrivateResource(
15 Connection connection, 14 Connection connection,
16 PP_Instance instance) 15 PP_Instance instance)
17 : PluginResource(connection, instance), 16 : PluginResource(connection, instance),
18 state_(STATE_BEFORE_LISTENING), 17 state_(STATE_BEFORE_LISTENING),
19 local_addr_(), 18 local_addr_() {
20 plugin_dispatcher_id_(0) {
21 SendCreate(BROWSER, PpapiHostMsg_TCPServerSocket_CreatePrivate()); 19 SendCreate(BROWSER, PpapiHostMsg_TCPServerSocket_CreatePrivate());
22
23 PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
24 if (dispatcher)
25 plugin_dispatcher_id_ = dispatcher->plugin_dispatcher_id();
26 else
27 NOTREACHED();
28 } 20 }
29 21
30 TCPServerSocketPrivateResource::~TCPServerSocketPrivateResource() { 22 TCPServerSocketPrivateResource::~TCPServerSocketPrivateResource() {
31 } 23 }
32 24
33 thunk::PPB_TCPServerSocket_Private_API* 25 thunk::PPB_TCPServerSocket_Private_API*
34 TCPServerSocketPrivateResource::AsPPB_TCPServerSocket_Private_API() { 26 TCPServerSocketPrivateResource::AsPPB_TCPServerSocket_Private_API() {
35 return this; 27 return this;
36 } 28 }
37 29
(...skipping 26 matching lines...) Expand all
64 return PP_ERROR_BADARGUMENT; 56 return PP_ERROR_BADARGUMENT;
65 if (state_ != STATE_LISTENING) 57 if (state_ != STATE_LISTENING)
66 return PP_ERROR_FAILED; 58 return PP_ERROR_FAILED;
67 if (TrackedCallback::IsPending(accept_callback_)) 59 if (TrackedCallback::IsPending(accept_callback_))
68 return PP_ERROR_INPROGRESS; 60 return PP_ERROR_INPROGRESS;
69 61
70 accept_callback_ = callback; 62 accept_callback_ = callback;
71 63
72 Call<PpapiPluginMsg_TCPServerSocket_AcceptReply>( 64 Call<PpapiPluginMsg_TCPServerSocket_AcceptReply>(
73 BROWSER, 65 BROWSER,
74 PpapiHostMsg_TCPServerSocket_Accept(plugin_dispatcher_id_), 66 PpapiHostMsg_TCPServerSocket_Accept(),
75 base::Bind(&TCPServerSocketPrivateResource::OnPluginMsgAcceptReply, 67 base::Bind(&TCPServerSocketPrivateResource::OnPluginMsgAcceptReply,
76 base::Unretained(this), tcp_socket)); 68 base::Unretained(this), tcp_socket));
77 return PP_OK_COMPLETIONPENDING; 69 return PP_OK_COMPLETIONPENDING;
78 } 70 }
79 71
80 int32_t TCPServerSocketPrivateResource::GetLocalAddress( 72 int32_t TCPServerSocketPrivateResource::GetLocalAddress(
81 PP_NetAddress_Private* addr) { 73 PP_NetAddress_Private* addr) {
82 if (!addr) 74 if (!addr)
83 return PP_ERROR_BADARGUMENT; 75 return PP_ERROR_BADARGUMENT;
84 if (state_ != STATE_LISTENING) 76 if (state_ != STATE_LISTENING)
(...skipping 23 matching lines...) Expand all
108 if (params.result() == PP_OK) { 100 if (params.result() == PP_OK) {
109 local_addr_ = local_addr; 101 local_addr_ = local_addr;
110 state_ = STATE_LISTENING; 102 state_ = STATE_LISTENING;
111 } 103 }
112 listen_callback_->Run(params.result()); 104 listen_callback_->Run(params.result());
113 } 105 }
114 106
115 void TCPServerSocketPrivateResource::OnPluginMsgAcceptReply( 107 void TCPServerSocketPrivateResource::OnPluginMsgAcceptReply(
116 PP_Resource* tcp_socket, 108 PP_Resource* tcp_socket,
117 const ResourceMessageReplyParams& params, 109 const ResourceMessageReplyParams& params,
118 uint32 accepted_socket_id, 110 int pending_resource_id,
119 const PP_NetAddress_Private& local_addr, 111 const PP_NetAddress_Private& local_addr,
120 const PP_NetAddress_Private& remote_addr) { 112 const PP_NetAddress_Private& remote_addr) {
121 DCHECK(tcp_socket); 113 DCHECK(tcp_socket);
122 if (state_ != STATE_LISTENING || 114 if (state_ != STATE_LISTENING ||
123 !TrackedCallback::IsPending(accept_callback_)) { 115 !TrackedCallback::IsPending(accept_callback_)) {
124 return; 116 return;
125 } 117 }
126 if (params.result() == PP_OK) { 118 if (params.result() == PP_OK) {
127 *tcp_socket = 119 *tcp_socket = (new TCPSocketPrivateResource(connection(), pp_instance(),
128 PPB_TCPSocket_Private_Proxy::CreateProxyResourceForConnectedSocket( 120 pending_resource_id,
129 pp_instance(), 121 local_addr,
130 accepted_socket_id, 122 remote_addr))->GetReference();
131 local_addr,
132 remote_addr);
133 } 123 }
134 accept_callback_->Run(params.result()); 124 accept_callback_->Run(params.result());
135 } 125 }
136 126
137 } // namespace proxy 127 } // namespace proxy
138 } // namespace ppapi 128 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/tcp_server_socket_private_resource.h ('k') | ppapi/proxy/tcp_socket_private_resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698