summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-09 01:24:24 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-09 01:24:24 +0000
commit30276b3eaf8cd863ca8cd623c893814dabf05919 (patch)
treecc176bb0fee9fc4773d9806940bfbcd3862a370b /ppapi
parente43bafd61d38e004db9e95105fef4dc63dc067e7 (diff)
downloadchromium_src-30276b3eaf8cd863ca8cd623c893814dabf05919.zip
chromium_src-30276b3eaf8cd863ca8cd623c893814dabf05919.tar.gz
chromium_src-30276b3eaf8cd863ca8cd623c893814dabf05919.tar.bz2
Revert 109153 - Revert 109086 - Add private Pepper API for dealing with PP_Flash_NetAddress.
[The Win components breakage should be fixed by r109156.] BUG=none TEST=none Review URL: http://codereview.chromium.org/8357030 TBR=viettrungluu@chromium.org Review URL: http://codereview.chromium.org/8499045 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/8496043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109160 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r--ppapi/api/private/ppb_flash_net_address.idl61
-rw-r--r--ppapi/api/private/ppb_flash_tcp_socket.idl10
-rw-r--r--ppapi/c/private/ppb_flash_net_address.h85
-rw-r--r--ppapi/c/private/ppb_flash_tcp_socket.h19
-rw-r--r--ppapi/c/private/ppb_flash_udp_socket.h4
-rw-r--r--ppapi/cpp/private/flash_net_address.cc81
-rw-r--r--ppapi/cpp/private/flash_net_address.h38
-rw-r--r--ppapi/ppapi_shared.gypi2
-rw-r--r--ppapi/proxy/interface_list.cc1
-rw-r--r--ppapi/thunk/interfaces_ppb_private.h1
10 files changed, 273 insertions, 29 deletions
diff --git a/ppapi/api/private/ppb_flash_net_address.idl b/ppapi/api/private/ppb_flash_net_address.idl
new file mode 100644
index 0000000..012c024
--- /dev/null
+++ b/ppapi/api/private/ppb_flash_net_address.idl
@@ -0,0 +1,61 @@
+/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the <code>PPB_Flash_NetAddress</code> interface.
+ */
+
+label Chrome {
+ M17 = 0.1
+};
+
+/**
+ * This is an opaque type holding a network address.
+ */
+[assert_size(132)]
+struct PP_Flash_NetAddress {
+ uint32_t size;
+ char[128] data;
+};
+
+/**
+ * The <code>PPB_Flash_NetAddress</code> interface provides operations on
+ * network addresses.
+ */
+interface PPB_Flash_NetAddress {
+ /**
+ * Returns PP_TRUE if the two addresses are equal (host and port).
+ */
+ PP_Bool AreEqual([in] PP_Flash_NetAddress addr1,
+ [in] PP_Flash_NetAddress addr2);
+
+ /**
+ * Returns PP_TRUE if the two addresses refer to the same host.
+ */
+ PP_Bool AreHostsEqual([in] PP_Flash_NetAddress addr1,
+ [in] PP_Flash_NetAddress addr2);
+
+ /**
+ * Returns a human-readable description of the network address, optionally
+ * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"),
+ * or an undefined var on failure.
+ */
+ PP_Var Describe([in] PP_Module module,
+ [in] PP_Flash_NetAddress addr,
+ [in] PP_Bool include_port);
+
+ /**
+ * Replaces the port in the given source address. Returns PP_TRUE on success.
+ */
+ PP_Bool ReplacePort([in] PP_Flash_NetAddress src_addr,
+ [in] uint16_t port,
+ [out] PP_Flash_NetAddress dest_addr);
+
+ /**
+ * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind.
+ */
+ void GetAnyAddress([in] PP_Bool is_ipv6,
+ [out] PP_Flash_NetAddress addr);
+};
diff --git a/ppapi/api/private/ppb_flash_tcp_socket.idl b/ppapi/api/private/ppb_flash_tcp_socket.idl
index 7a8c4ca..e832809 100644
--- a/ppapi/api/private/ppb_flash_tcp_socket.idl
+++ b/ppapi/api/private/ppb_flash_tcp_socket.idl
@@ -12,15 +12,6 @@ label Chrome {
};
/**
- * This is an opaque type holding a network address.
- */
-[assert_size(132)]
-struct PP_Flash_NetAddress {
- uint32_t size;
- char[128] data;
-};
-
-/**
* The <code>PPB_Flash_TCPSocket</code> interface provides TCP socket
* operations.
*/
@@ -121,4 +112,3 @@ interface PPB_Flash_TCPSocket {
*/
void Disconnect([in] PP_Resource tcp_socket);
};
-
diff --git a/ppapi/c/private/ppb_flash_net_address.h b/ppapi/c/private/ppb_flash_net_address.h
new file mode 100644
index 0000000..20b2ac9
--- /dev/null
+++ b/ppapi/c/private/ppb_flash_net_address.h
@@ -0,0 +1,85 @@
+/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From private/ppb_flash_net_address.idl modified Fri Nov 4 12:47:53 2011. */
+
+#ifndef PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_
+#define PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_module.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+
+#define PPB_FLASH_NETADDRESS_INTERFACE_0_1 "PPB_Flash_NetAddress;0.1"
+#define PPB_FLASH_NETADDRESS_INTERFACE PPB_FLASH_NETADDRESS_INTERFACE_0_1
+
+/**
+ * @file
+ * This file defines the <code>PPB_Flash_NetAddress</code> interface.
+ */
+
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+/**
+ * This is an opaque type holding a network address.
+ */
+struct PP_Flash_NetAddress {
+ uint32_t size;
+ char data[128];
+};
+PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Flash_NetAddress, 132);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * The <code>PPB_Flash_NetAddress</code> interface provides operations on
+ * network addresses.
+ */
+struct PPB_Flash_NetAddress {
+ /**
+ * Returns PP_TRUE if the two addresses are equal (host and port).
+ */
+ PP_Bool (*AreEqual)(const struct PP_Flash_NetAddress* addr1,
+ const struct PP_Flash_NetAddress* addr2);
+ /**
+ * Returns PP_TRUE if the two addresses refer to the same host.
+ */
+ PP_Bool (*AreHostsEqual)(const struct PP_Flash_NetAddress* addr1,
+ const struct PP_Flash_NetAddress* addr2);
+ /**
+ * Returns a human-readable description of the network address, optionally
+ * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"),
+ * or an undefined var on failure.
+ */
+ struct PP_Var (*Describe)(PP_Module module,
+ const struct PP_Flash_NetAddress* addr,
+ PP_Bool include_port);
+ /**
+ * Replaces the port in the given source address. Returns PP_TRUE on success.
+ */
+ PP_Bool (*ReplacePort)(const struct PP_Flash_NetAddress* src_addr,
+ uint16_t port,
+ struct PP_Flash_NetAddress* dest_addr);
+ /**
+ * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind.
+ */
+ void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_Flash_NetAddress* addr);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PRIVATE_PPB_FLASH_NET_ADDRESS_H_ */
+
diff --git a/ppapi/c/private/ppb_flash_tcp_socket.h b/ppapi/c/private/ppb_flash_tcp_socket.h
index 0cad5bc..cf75df9 100644
--- a/ppapi/c/private/ppb_flash_tcp_socket.h
+++ b/ppapi/c/private/ppb_flash_tcp_socket.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From private/ppb_flash_tcp_socket.idl modified Fri Sep 23 17:09:42 2011. */
+/* From private/ppb_flash_tcp_socket.idl modified Mon Oct 17 16:09:17 2011. */
#ifndef PPAPI_C_PRIVATE_PPB_FLASH_TCP_SOCKET_H_
#define PPAPI_C_PRIVATE_PPB_FLASH_TCP_SOCKET_H_
@@ -14,6 +14,7 @@
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/private/ppb_flash_net_address.h"
#define PPB_FLASH_TCPSOCKET_INTERFACE_0_2 "PPB_Flash_TCPSocket;0.2"
#define PPB_FLASH_TCPSOCKET_INTERFACE PPB_FLASH_TCPSOCKET_INTERFACE_0_2
@@ -25,22 +26,6 @@
/**
- * @addtogroup Structs
- * @{
- */
-/**
- * This is an opaque type holding a network address.
- */
-struct PP_Flash_NetAddress {
- uint32_t size;
- char data[128];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Flash_NetAddress, 132);
-/**
- * @}
- */
-
-/**
* @addtogroup Interfaces
* @{
*/
diff --git a/ppapi/c/private/ppb_flash_udp_socket.h b/ppapi/c/private/ppb_flash_udp_socket.h
index 0909363..b7fc66e 100644
--- a/ppapi/c/private/ppb_flash_udp_socket.h
+++ b/ppapi/c/private/ppb_flash_udp_socket.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_flash_udp_socket.idl modified Mon Sep 26 09:04:41 2011. */
+/* From private/ppb_flash_udp_socket.idl modified Mon Oct 17 15:55:01 2011. */
#ifndef PPAPI_C_PRIVATE_PPB_FLASH_UDP_SOCKET_H_
#define PPAPI_C_PRIVATE_PPB_FLASH_UDP_SOCKET_H_
@@ -14,7 +14,7 @@
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_flash_tcp_socket.h"
+#include "ppapi/c/private/ppb_flash_net_address.h"
#define PPB_FLASH_UDPSOCKET_INTERFACE_0_1 "PPB_Flash_UDPSocket;0.1"
#define PPB_FLASH_UDPSOCKET_INTERFACE PPB_FLASH_UDPSOCKET_INTERFACE_0_1
diff --git a/ppapi/cpp/private/flash_net_address.cc b/ppapi/cpp/private/flash_net_address.cc
new file mode 100644
index 0000000..93984d7
--- /dev/null
+++ b/ppapi/cpp/private/flash_net_address.cc
@@ -0,0 +1,81 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// TODO(viettrungluu): See the comment in corresponding .h file.
+
+#include "ppapi/cpp/private/flash_net_address.h"
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+#include "ppapi/c/private/ppb_flash_net_address.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_Flash_NetAddress>() {
+ return PPB_FLASH_NETADDRESS_INTERFACE;
+}
+
+} // namespace
+
+namespace flash {
+
+// static
+bool NetAddress::AreEqual(const PP_Flash_NetAddress& addr1,
+ const PP_Flash_NetAddress& addr2) {
+ if (!has_interface<PPB_Flash_NetAddress>())
+ return false;
+ return !!get_interface<PPB_Flash_NetAddress>()->AreEqual(&addr1, &addr2);
+}
+
+// static
+bool NetAddress::AreHostsEqual(const PP_Flash_NetAddress& addr1,
+ const PP_Flash_NetAddress& addr2) {
+ if (!has_interface<PPB_Flash_NetAddress>())
+ return false;
+ return !!get_interface<PPB_Flash_NetAddress>()->AreHostsEqual(&addr1, &addr2);
+}
+
+// static
+std::string NetAddress::Describe(const PP_Flash_NetAddress& addr,
+ bool include_port) {
+ if (!has_interface<PPB_Flash_NetAddress>())
+ return std::string();
+
+ Module* module = Module::Get();
+ if (!module)
+ return std::string();
+
+ Var result(Var::PassRef(),
+ get_interface<PPB_Flash_NetAddress>()->Describe(
+ module->pp_module(),
+ &addr,
+ PP_FromBool(include_port)));
+ return result.is_string() ? result.AsString() : std::string();
+}
+
+// static
+bool NetAddress::ReplacePort(const PP_Flash_NetAddress& addr_in,
+ uint16_t port,
+ PP_Flash_NetAddress* addr_out) {
+ if (!has_interface<PPB_Flash_NetAddress>())
+ return false;
+ return !!get_interface<PPB_Flash_NetAddress>()->ReplacePort(&addr_in,
+ port,
+ addr_out);
+}
+
+// static
+void NetAddress::GetAnyAddress(bool is_ipv6, PP_Flash_NetAddress* addr) {
+ if (!has_interface<PPB_Flash_NetAddress>())
+ return;
+ get_interface<PPB_Flash_NetAddress>()->GetAnyAddress(PP_FromBool(is_ipv6),
+ addr);
+}
+
+} // namespace flash
+} // namespace pp
diff --git a/ppapi/cpp/private/flash_net_address.h b/ppapi/cpp/private/flash_net_address.h
new file mode 100644
index 0000000..f08cb52
--- /dev/null
+++ b/ppapi/cpp/private/flash_net_address.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// TODO(viettrungluu): This (and the .cc file) contain C++ wrappers for things
+// in ppapi/c/private/ppb_flash_net_address.h. This is currently not used in
+// (or even compiled with) Chromium.
+
+#ifndef PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_
+#define PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_
+
+#include <string>
+
+#include "ppapi/c/pp_stdint.h"
+
+struct PP_Flash_NetAddress;
+
+namespace pp {
+namespace flash {
+
+class NetAddress {
+ public:
+ static bool AreEqual(const PP_Flash_NetAddress& addr1,
+ const PP_Flash_NetAddress& addr2);
+ static bool AreHostsEqual(const PP_Flash_NetAddress& addr1,
+ const PP_Flash_NetAddress& addr2);
+ static std::string Describe(const PP_Flash_NetAddress& addr,
+ bool include_port);
+ static bool ReplacePort(const PP_Flash_NetAddress& addr_in,
+ uint16_t port,
+ PP_Flash_NetAddress* addr_out);
+ static void GetAnyAddress(bool is_ipv6, PP_Flash_NetAddress* addr);
+};
+
+} // namespace flash
+} // namespace pp
+
+#endif // PPAPI_CPP_PRIVATE_FLASH_NET_ADDRESS_H_
diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi
index 021a09e..f74c886 100644
--- a/ppapi/ppapi_shared.gypi
+++ b/ppapi/ppapi_shared.gypi
@@ -63,6 +63,8 @@
'shared_impl/ppapi_preferences.h',
'shared_impl/ppp_instance_combined.cc',
'shared_impl/ppp_instance_combined.h',
+ # TODO(viettrungluu): Split this out; it won't be used in NaCl.
+ 'shared_impl/private/flash_net_address_impl.cc',
'shared_impl/proxy_lock.cc',
'shared_impl/proxy_lock.h',
'shared_impl/resource.cc',
diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc
index a11e778..269aa6e 100644
--- a/ppapi/proxy/interface_list.cc
+++ b/ppapi/proxy/interface_list.cc
@@ -46,6 +46,7 @@
#include "ppapi/c/private/ppb_flash_file.h"
#include "ppapi/c/private/ppb_flash_fullscreen.h"
#include "ppapi/c/private/ppb_flash_menu.h"
+#include "ppapi/c/private/ppb_flash_net_address.h"
#include "ppapi/c/private/ppb_flash_net_connector.h"
#include "ppapi/c/private/ppb_flash_tcp_socket.h"
#include "ppapi/c/private/ppb_flash_udp_socket.h"
diff --git a/ppapi/thunk/interfaces_ppb_private.h b/ppapi/thunk/interfaces_ppb_private.h
index 2631552..f6d5397 100644
--- a/ppapi/thunk/interfaces_ppb_private.h
+++ b/ppapi/thunk/interfaces_ppb_private.h
@@ -11,6 +11,7 @@ PROXIED_API(PPB_Broker)
PROXIED_IFACE(PPB_Broker, PPB_BROKER_TRUSTED_INTERFACE_0_2, PPB_BrokerTrusted)
PROXIED_IFACE(PPB_Instance, PPB_FLASHFULLSCREEN_INTERFACE, PPB_FlashFullscreen)
+PROXIED_IFACE(NoAPIName, PPB_FLASH_NETADDRESS_INTERFACE, PPB_Flash_NetAddress)
// Map the old fullscreen interface string to the Flash one, which is the same
// at the ABI level. TODO(polina): remove this when Flash is updated.
PROXIED_IFACE(PPB_Instance, PPB_FULLSCREEN_DEV_INTERFACE_0_4,