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

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, 9 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 class PPB_X509Certificate_Fields;
21
20 namespace proxy { 22 namespace proxy {
21 23
22 namespace { 24 namespace {
23 25
24 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap; 26 typedef std::map<uint32, TCPSocketPrivateImpl*> IDToSocketMap;
25 IDToSocketMap* g_id_to_socket = NULL; 27 IDToSocketMap* g_id_to_socket = NULL;
26 28
27 class TCPSocket : public TCPSocketPrivateImpl { 29 class TCPSocket : public TCPSocketPrivateImpl {
28 public: 30 public:
29 TCPSocket(const HostResource& resource, uint32 socket_id); 31 TCPSocket(const HostResource& resource, uint32 socket_id);
30 virtual ~TCPSocket(); 32 virtual ~TCPSocket();
31 33
32 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE; 34 virtual void SendConnect(const std::string& host, uint16_t port) OVERRIDE;
33 virtual void SendConnectWithNetAddress( 35 virtual void SendConnectWithNetAddress(
34 const PP_NetAddress_Private& addr) OVERRIDE; 36 const PP_NetAddress_Private& addr) OVERRIDE;
35 virtual void SendSSLHandshake(const std::string& server_name, 37 virtual void SendSSLHandshake(
36 uint16_t server_port) OVERRIDE; 38 const std::string& server_name,
39 uint16_t server_port,
40 const std::vector<std::vector<char> >& trusted_certs,
41 const std::vector<std::vector<char> >& untrusted_certs)
42 OVERRIDE;
37 virtual void SendRead(int32_t bytes_to_read) OVERRIDE; 43 virtual void SendRead(int32_t bytes_to_read) OVERRIDE;
38 virtual void SendWrite(const std::string& buffer) OVERRIDE; 44 virtual void SendWrite(const std::string& buffer) OVERRIDE;
39 virtual void SendDisconnect() OVERRIDE; 45 virtual void SendDisconnect() OVERRIDE;
40 46
41 private: 47 private:
42 void SendToBrowser(IPC::Message* msg); 48 void SendToBrowser(IPC::Message* msg);
43 49
44 DISALLOW_COPY_AND_ASSIGN(TCPSocket); 50 DISALLOW_COPY_AND_ASSIGN(TCPSocket);
45 }; 51 };
46 52
(...skipping 12 matching lines...) Expand all
59 void TCPSocket::SendConnect(const std::string& host, uint16_t port) { 65 void TCPSocket::SendConnect(const std::string& host, uint16_t port) {
60 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect( 66 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Connect(
61 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port)); 67 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, host, port));
62 } 68 }
63 69
64 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) { 70 void TCPSocket::SendConnectWithNetAddress(const PP_NetAddress_Private& addr) {
65 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress( 71 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress(
66 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr)); 72 API_ID_PPB_TCPSOCKET_PRIVATE, socket_id_, addr));
67 } 73 }
68 74
69 void TCPSocket::SendSSLHandshake(const std::string& server_name, 75 void TCPSocket::SendSSLHandshake(
70 uint16_t server_port) { 76 const std::string& server_name,
77 uint16_t server_port,
78 const std::vector<std::vector<char> >& trusted_certs,
79 const std::vector<std::vector<char> >& untrusted_certs) {
71 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake( 80 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_SSLHandshake(
72 socket_id_, server_name, server_port)); 81 socket_id_, server_name, server_port, trusted_certs, untrusted_certs));
73 } 82 }
74 83
75 void TCPSocket::SendRead(int32_t bytes_to_read) { 84 void TCPSocket::SendRead(int32_t bytes_to_read) {
76 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read)); 85 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Read(socket_id_, bytes_to_read));
77 } 86 }
78 87
79 void TCPSocket::SendWrite(const std::string& buffer) { 88 void TCPSocket::SendWrite(const std::string& buffer) {
80 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer)); 89 SendToBrowser(new PpapiHostMsg_PPBTCPSocket_Write(socket_id_, buffer));
81 } 90 }
82 91
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 } 156 }
148 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 157 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
149 if (iter == g_id_to_socket->end()) 158 if (iter == g_id_to_socket->end())
150 return; 159 return;
151 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr); 160 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr);
152 } 161 }
153 162
154 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK( 163 void PPB_TCPSocket_Private_Proxy::OnMsgSSLHandshakeACK(
155 uint32 /* plugin_dispatcher_id */, 164 uint32 /* plugin_dispatcher_id */,
156 uint32 socket_id, 165 uint32 socket_id,
157 bool succeeded) { 166 bool succeeded,
167 const PPB_X509Certificate_Fields& certificate_fields) {
158 if (!g_id_to_socket) { 168 if (!g_id_to_socket) {
159 NOTREACHED(); 169 NOTREACHED();
160 return; 170 return;
161 } 171 }
162 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 172 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
163 if (iter == g_id_to_socket->end()) 173 if (iter == g_id_to_socket->end())
164 return; 174 return;
165 iter->second->OnSSLHandshakeCompleted(succeeded); 175 iter->second->OnSSLHandshakeCompleted(succeeded, certificate_fields);
166 } 176 }
167 177
168 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK( 178 void PPB_TCPSocket_Private_Proxy::OnMsgReadACK(
169 uint32 /* plugin_dispatcher_id */, 179 uint32 /* plugin_dispatcher_id */,
170 uint32 socket_id, 180 uint32 socket_id,
171 bool succeeded, 181 bool succeeded,
172 const std::string& data) { 182 const std::string& data) {
173 if (!g_id_to_socket) { 183 if (!g_id_to_socket) {
174 NOTREACHED(); 184 NOTREACHED();
175 return; 185 return;
(...skipping 14 matching lines...) Expand all
190 return; 200 return;
191 } 201 }
192 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); 202 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
193 if (iter == g_id_to_socket->end()) 203 if (iter == g_id_to_socket->end())
194 return; 204 return;
195 iter->second->OnWriteCompleted(succeeded, bytes_written); 205 iter->second->OnWriteCompleted(succeeded, bytes_written);
196 } 206 }
197 207
198 } // namespace proxy 208 } // namespace proxy
199 } // namespace ppapi 209 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_tcp_socket_private_proxy.h ('k') | ppapi/shared_impl/private/ppb_flash_x509_certificate_shared.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698