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

Unified Diff: ppapi/cpp/private/tcp_socket_private.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/cpp/private/tcp_socket_private.h ('k') | ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/cpp/private/tcp_socket_private.cc
diff --git a/ppapi/cpp/private/tcp_socket_private.cc b/ppapi/cpp/private/tcp_socket_private.cc
index e15f5378b9a5347b5c61b0ce0d92ab685dd37392..990684fec4d23fcea7b82cc764c5c27782f98cfa 100644
--- a/ppapi/cpp/private/tcp_socket_private.cc
+++ b/ppapi/cpp/private/tcp_socket_private.cc
@@ -19,10 +19,15 @@ template <> const char* interface_name<PPB_TCPSocket_Private>() {
return PPB_TCPSOCKET_PRIVATE_INTERFACE;
}
+template <> const char* interface_name<PPB_TCPSocket_Private_0_3>() {
+ return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3;
+}
+
} // namespace
TCPSocketPrivate::TCPSocketPrivate(const InstanceHandle& instance) {
- if (has_interface<PPB_TCPSocket_Private>()) {
+ if ((has_interface<PPB_TCPSocket_Private>() ||
+ has_interface<PPB_TCPSocket_Private_0_3>()) && instance.pp_instance()) {
PassRefFromConstructor(get_interface<PPB_TCPSocket_Private>()->Create(
instance.pp_instance()));
}
@@ -34,13 +39,15 @@ TCPSocketPrivate::TCPSocketPrivate(PassRef, PP_Resource resource)
// static
bool TCPSocketPrivate::IsAvailable() {
- return has_interface<PPB_TCPSocket_Private>();
+ return has_interface<PPB_TCPSocket_Private>() ||
+ has_interface<PPB_TCPSocket_Private_0_3>();
}
int32_t TCPSocketPrivate::Connect(const char* host,
uint16_t port,
const CompletionCallback& callback) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_TCPSocket_Private>()->Connect(
pp_resource(), host, port, callback.pp_completion_callback());
@@ -49,14 +56,16 @@ int32_t TCPSocketPrivate::Connect(const char* host,
int32_t TCPSocketPrivate::ConnectWithNetAddress(
const PP_NetAddress_Private* addr,
const CompletionCallback& callback) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_TCPSocket_Private>()->ConnectWithNetAddress(
pp_resource(), addr, callback.pp_completion_callback());
}
bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return false;
PP_Bool result = get_interface<PPB_TCPSocket_Private>()->GetLocalAddress(
@@ -65,7 +74,8 @@ bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) {
}
bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return false;
PP_Bool result = get_interface<PPB_TCPSocket_Private>()->GetRemoteAddress(
pp_resource(), remote_addr);
@@ -75,17 +85,37 @@ bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) {
int32_t TCPSocketPrivate::SSLHandshake(const char* server_name,
uint16_t server_port,
const CompletionCallback& callback) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_TCPSocket_Private>()->SSLHandshake(
pp_resource(), server_name, server_port,
callback.pp_completion_callback());
}
+X509Certificate TCPSocketPrivate::GetServerCertificate() {
+ if (!has_interface<PPB_TCPSocket_Private>())
+ return X509Certificate();
+ return X509Certificate(
+ get_interface<PPB_TCPSocket_Private>()->GetServerCertificate(
+ pp_resource()));
+}
+
+bool TCPSocketPrivate::AddChainBuildingCertificate(const X509Certificate& cert,
+ bool trusted) {
+ if (!has_interface<PPB_TCPSocket_Private>())
+ return false;
+ return get_interface<PPB_TCPSocket_Private>()->AddChainBuildingCertificate(
+ pp_resource(),
+ cert.pp_resource(),
+ PP_FromBool(trusted));
+}
+
int32_t TCPSocketPrivate::Read(char* buffer,
int32_t bytes_to_read,
const CompletionCallback& callback) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_TCPSocket_Private>()->Read(
pp_resource(), buffer, bytes_to_read, callback.pp_completion_callback());
@@ -94,14 +124,16 @@ int32_t TCPSocketPrivate::Read(char* buffer,
int32_t TCPSocketPrivate::Write(const char* buffer,
int32_t bytes_to_write,
const CompletionCallback& callback) {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_TCPSocket_Private>()->Write(
pp_resource(), buffer, bytes_to_write, callback.pp_completion_callback());
}
void TCPSocketPrivate::Disconnect() {
- if (!has_interface<PPB_TCPSocket_Private>())
+ if (!has_interface<PPB_TCPSocket_Private>() &&
+ !has_interface<PPB_TCPSocket_Private_0_3>())
return;
return get_interface<PPB_TCPSocket_Private>()->Disconnect(pp_resource());
}
« no previous file with comments | « ppapi/cpp/private/tcp_socket_private.h ('k') | ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698