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

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

Issue 9699100: Add functionality to pppapi TCPSocket to support secure sockets in flash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 8 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 (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 "ppapi/proxy/ppb_tcp_socket_private_proxy.h" 5 #include "ppapi/proxy/ppb_tcp_socket_private_proxy.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "ppapi/proxy/plugin_dispatcher.h" 10 #include "ppapi/proxy/plugin_dispatcher.h"
11 #include "ppapi/proxy/plugin_globals.h" 11 #include "ppapi/proxy/plugin_globals.h"
12 #include "ppapi/proxy/plugin_proxy_delegate.h" 12 #include "ppapi/proxy/plugin_proxy_delegate.h"
13 #include "ppapi/proxy/plugin_resource_tracker.h" 13 #include "ppapi/proxy/plugin_resource_tracker.h"
14 #include "ppapi/proxy/ppapi_messages.h" 14 #include "ppapi/proxy/ppapi_messages.h"
15 #include "ppapi/shared_impl/private/tcp_socket_private_impl.h" 15 #include "ppapi/shared_impl/private/tcp_socket_private_impl.h"
16 #include "ppapi/shared_impl/resource.h" 16 #include "ppapi/shared_impl/resource.h"
17 #include "ppapi/thunk/thunk.h" 17 #include "ppapi/thunk/thunk.h"
18 18
19 namespace ppapi { 19 namespace ppapi {
20
21 class PPB_X509Certificate_Fields;
yzshen1 2012/04/06 19:24:33 I think you should put this in the .h file and mov
raymes 2012/04/06 23:22:47 Done.
22
20 namespace proxy { 23 namespace proxy {
21 24
22 namespace { 25 namespace {
23 26
24 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap; 27 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap;
25 IDToSocketMap* g_id_to_socket = NULL; 28 IDToSocketMap* g_id_to_socket = NULL;
26 29
27 class TCPSocket : public TCPSocketPrivateImpl { 30 class TCPSocket : public TCPSocketPrivateImpl {
28 public: 31 public:
29 // C-tor for new sockets. 32 // C-tor for new sockets.
30 TCPSocket(const HostResource& resource, uint32 socket_id); 33 TCPSocket(const HostResource& resource, uint32 socket_id);
31 // C-tor for already connected sockets. 34 // C-tor for already connected sockets.
32 TCPSocket(const HostResource& resource, 35 TCPSocket(const HostResource& resource,
33 uint32 socket_id, 36 uint32 socket_id,
34 const PP_NetAddress_Private& local_addr, 37 const PP_NetAddress_Private& local_addr,
35 const PP_NetAddress_Private& remote_addr); 38 const PP_NetAddress_Private& remote_addr);
36 virtual ~TCPSocket(); 39 virtual ~TCPSocket();
37 40
38 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE; 41 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE;
39 virtual void SendConnectWithNetAddress( 42 virtual void SendConnectWithNetAddress(
40 const PP_NetAddress_Private& addr) OVERRIDE; 43 const PP_NetAddress_Private& addr) OVERRIDE;
41 virtual void SendSSLHandshake(const std::string& server_name, 44 virtual void SendSSLHandshake(
42 uint16_t server_port) OVERRIDE; 45 const std::string& server_name,
yzshen1 2012/04/06 19:24:33 wrong indent.
raymes 2012/04/06 23:22:47 Done.
46 uint16_t server_port,
47 const std::vector<std::vector<char> >& trusted_certs,
48 const std::vector<std::vector<char> >& untrusted_certs)
49 OVERRIDE;
yzshen1 2012/04/06 19:24:33 put OVERRIDE on the same line as the last paramete
raymes 2012/04/06 23:22:47 Done.
43 virtual void SendRead(int32_t bytes_to_read) OVERRIDE; 50 virtual void SendRead(int32_t bytes_to_read) OVERRIDE;
44 virtual void SendWrite(const std::string& buffer) OVERRIDE; 51 virtual void SendWrite(const std::string& buffer) OVERRIDE;
45 virtual void SendDisconnect() OVERRIDE; 52 virtual void SendDisconnect() OVERRIDE;
46 53
47 private: 54 private:
48 void SendToBrowser(IPC::Message* msg); 55 void SendToBrowser(IPC::Message* msg);
49 56
50 DISALLOW_COPY_AND_ASSIGN(TCPSocket); 57 DISALLOW_COPY_AND_ASSIGN(TCPSocket);
51 }; 58 };
52 59
(...skipping 28 matching lines...) Expand all
81 void TCPSocket::SendConnect(const std::string& host, uint16_t port) { 88 void TCPSocket::SendConnect(const std::string& host, uint16_t port) {
82 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect( 89 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect(
83 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port)); 90 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port));
84 } 91 }
85 92
86 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) { 93 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) {
87 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress( 94 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress(
88 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr)); 95 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr));
89 } 96 }
90 97
91 void TCPSocket::SendSSLHandshake(const std::string& server_name, 98 void TCPSocket::SendSSLHandshake(
92 uint16_t server_port) { 99 const std::string& server_name,
100 uint16_t server_port,
101 const std::vector<std::vector<char> >& trusted_certs,
102 const std::vector<std::vector<char> >& untrusted_certs) {
93 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake( 103 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake(
94 socket_id_, server_name, server_port)); 104 socket_id_, server_name, server_port, trusted_certs, untrusted_certs));
95 } 105 }
96 106
97 void TCPSocket::SendRead(int32_t bytes_to_read) { 107 void TCPSocket::SendRead(int32_t bytes_to_read) {
98 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read)); 108 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read));
99 } 109 }
100 110
101 void TCPSocket::SendWrite(const std::string& buffer) { 111 void TCPSocket::SendWrite(const std::string& buffer) {
102 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer)); 112 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer));
103 } 113 }
104 114
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 191 }
182 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 192 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
183 if (iter == g_id_to_socket->end()) 193 if (iter == g_id_to_socket->end())
184 return; 194 return;
185 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr); 195 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr);
186 } 196 }
187 197
188 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK( 198 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK(
189 uint32 /* plugin_dispatcher_id */, 199 uint32 /* plugin_dispatcher_id */,
190 uint32 socket_id, 200 uint32 socket_id,
191 bool succeeded) { 201 bool succeeded,
202 const PPB_X509Certificate_Fields& certificate_fields) {
192 if (!g_id_to_socket) { 203 if (!g_id_to_socket) {
193 NOTREACHED(); 204 NOTREACHED();
194 return; 205 return;
195 } 206 }
196 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 207 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
197 if (iter == g_id_to_socket->end()) 208 if (iter == g_id_to_socket->end())
198 return; 209 return;
199 iter->second->OnSSLHandshakeCompleted(succeeded); 210 iter->second->OnSSLHandshakeCompleted(succeeded, certificate_fields);
200 } 211 }
201 212
202 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK( 213 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK(
203 uint32 /* plugin_dispatcher_id */, 214 uint32 /* plugin_dispatcher_id */,
204 uint32 socket_id, 215 uint32 socket_id,
205 bool succeeded, 216 bool succeeded,
206 const std::string& data) { 217 const std::string& data) {
207 if (!g_id_to_socket) { 218 if (!g_id_to_socket) {
208 NOTREACHED(); 219 NOTREACHED();
209 return; 220 return;
(...skipping 14 matching lines...) Expand all
224 return; 235 return;
225 } 236 }
226 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 237 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
227 if (iter == g_id_to_socket->end()) 238 if (iter == g_id_to_socket->end())
228 return; 239 return;
229 iter->second->OnWriteCompleted(succeeded, bytes_written); 240 iter->second->OnWriteCompleted(succeeded, bytes_written);
230 } 241 }
231 242
232 } // namespace proxy 243 } // namespace proxy
233 } // namespace ppapi 244 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698