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

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/ppb_x509_certificate_private_shared.h"
15 #include "ppapi/shared_impl/private/tcp_socket_private_impl.h" 16 #include "ppapi/shared_impl/private/tcp_socket_private_impl.h"
16 #include "ppapi/shared_impl/resource.h" 17 #include "ppapi/shared_impl/resource.h"
17 #include "ppapi/thunk/thunk.h" 18 #include "ppapi/thunk/thunk.h"
18 19
19 namespace ppapi { 20 namespace ppapi {
20 namespace proxy { 21 namespace proxy {
21 22
22 namespace { 23 namespace {
23 24
24 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap; 25 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap;
25 IDToSocketMap* g_id_to_socket = NULL; 26 IDToSocketMap* g_id_to_socket = NULL;
26 27
27 class TCPSocket : public TCPSocketPrivateImpl { 28 class TCPSocket : public TCPSocketPrivateImpl {
28 public: 29 public:
29 // C-tor for new sockets. 30 // C-tor for new sockets.
30 TCPSocket(const HostResource& resource, uint32 socket_id); 31 TCPSocket(const HostResource& resource, uint32 socket_id);
31 // C-tor for already connected sockets. 32 // C-tor for already connected sockets.
32 TCPSocket(const HostResource& resource, 33 TCPSocket(const HostResource& resource,
33 uint32 socket_id, 34 uint32 socket_id,
34 const PP_NetAddress_Private& local_addr, 35 const PP_NetAddress_Private& local_addr,
35 const PP_NetAddress_Private& remote_addr); 36 const PP_NetAddress_Private& remote_addr);
36 virtual ~TCPSocket(); 37 virtual ~TCPSocket();
37 38
38 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE; 39 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE;
39 virtual void SendConnectWithNetAddress( 40 virtual void SendConnectWithNetAddress(
40 const PP_NetAddress_Private& addr) OVERRIDE; 41 const PP_NetAddress_Private& addr) OVERRIDE;
41 virtual void SendSSLHandshake(const std::string& server_name, 42 virtual void SendSSLHandshake(
42 uint16_t server_port) OVERRIDE; 43 const std::string& server_name,
44 uint16_t server_port,
45 const std::vector<std::vector<char> >& trusted_certs,
46 const std::vector<std::vector<char> >& untrusted_certs) OVERRIDE;
43 virtual void SendRead(int32_t bytes_to_read) OVERRIDE; 47 virtual void SendRead(int32_t bytes_to_read) OVERRIDE;
44 virtual void SendWrite(const std::string& buffer) OVERRIDE; 48 virtual void SendWrite(const std::string& buffer) OVERRIDE;
45 virtual void SendDisconnect() OVERRIDE; 49 virtual void SendDisconnect() OVERRIDE;
46 50
47 private: 51 private:
48 void SendToBrowser(IPC::Message* msg); 52 void SendToBrowser(IPC::Message* msg);
49 53
50 DISALLOW_COPY_AND_ASSIGN(TCPSocket); 54 DISALLOW_COPY_AND_ASSIGN(TCPSocket);
51 }; 55 };
52 56
(...skipping 28 matching lines...) Expand all
81 void TCPSocket::SendConnect(const std::string& host, uint16_t port) { 85 void TCPSocket::SendConnect(const std::string& host, uint16_t port) {
82 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect( 86 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect(
83 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port)); 87 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port));
84 } 88 }
85 89
86 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) { 90 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) {
87 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress( 91 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress(
88 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr)); 92 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr));
89 } 93 }
90 94
91 void TCPSocket::SendSSLHandshake(const std::string& server_name, 95 void TCPSocket::SendSSLHandshake(
92 uint16_t server_port) { 96 const std::string& server_name,
97 uint16_t server_port,
98 const std::vector<std::vector<char> >& trusted_certs,
99 const std::vector<std::vector<char> >& untrusted_certs) {
93 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake( 100 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake(
94 socket_id_, server_name, server_port)); 101 socket_id_, server_name, server_port, trusted_certs, untrusted_certs));
95 } 102 }
96 103
97 void TCPSocket::SendRead(int32_t bytes_to_read) { 104 void TCPSocket::SendRead(int32_t bytes_to_read) {
98 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read)); 105 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read));
99 } 106 }
100 107
101 void TCPSocket::SendWrite(const std::string& buffer) { 108 void TCPSocket::SendWrite(const std::string& buffer) {
102 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer)); 109 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer));
103 } 110 }
104 111
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 188 }
182 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 189 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
183 if (iter == g_id_to_socket->end()) 190 if (iter == g_id_to_socket->end())
184 return; 191 return;
185 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr); 192 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr);
186 } 193 }
187 194
188 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK( 195 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK(
189 uint32 /* plugin_dispatcher_id */, 196 uint32 /* plugin_dispatcher_id */,
190 uint32 socket_id, 197 uint32 socket_id,
191 bool succeeded) { 198 bool succeeded,
199 const PPB_X509Certificate_Fields& certificate_fields) {
192 if (!g_id_to_socket) { 200 if (!g_id_to_socket) {
193 NOTREACHED(); 201 NOTREACHED();
194 return; 202 return;
195 } 203 }
196 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 204 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
197 if (iter == g_id_to_socket->end()) 205 if (iter == g_id_to_socket->end())
198 return; 206 return;
199 iter->second->OnSSLHandshakeCompleted(succeeded); 207 iter->second->OnSSLHandshakeCompleted(succeeded, certificate_fields);
200 } 208 }
201 209
202 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK( 210 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK(
203 uint32 /* plugin_dispatcher_id */, 211 uint32 /* plugin_dispatcher_id */,
204 uint32 socket_id, 212 uint32 socket_id,
205 bool succeeded, 213 bool succeeded,
206 const std::string& data) { 214 const std::string& data) {
207 if (!g_id_to_socket) { 215 if (!g_id_to_socket) {
208 NOTREACHED(); 216 NOTREACHED();
209 return; 217 return;
(...skipping 14 matching lines...) Expand all
224 return; 232 return;
225 } 233 }
226 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 234 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
227 if (iter == g_id_to_socket->end()) 235 if (iter == g_id_to_socket->end())
228 return; 236 return;
229 iter->second->OnWriteCompleted(succeeded, bytes_written); 237 iter->second->OnWriteCompleted(succeeded, bytes_written);
230 } 238 }
231 239
232 } // namespace proxy 240 } // namespace proxy
233 } // namespace ppapi 241 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_tcp_socket_private_proxy.h ('k') | ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698