diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-09 01:24:24 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-09 01:24:24 +0000 |
commit | 30276b3eaf8cd863ca8cd623c893814dabf05919 (patch) | |
tree | cc176bb0fee9fc4773d9806940bfbcd3862a370b /ppapi | |
parent | e43bafd61d38e004db9e95105fef4dc63dc067e7 (diff) | |
download | chromium_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.idl | 61 | ||||
-rw-r--r-- | ppapi/api/private/ppb_flash_tcp_socket.idl | 10 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_net_address.h | 85 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_tcp_socket.h | 19 | ||||
-rw-r--r-- | ppapi/c/private/ppb_flash_udp_socket.h | 4 | ||||
-rw-r--r-- | ppapi/cpp/private/flash_net_address.cc | 81 | ||||
-rw-r--r-- | ppapi/cpp/private/flash_net_address.h | 38 | ||||
-rw-r--r-- | ppapi/ppapi_shared.gypi | 2 | ||||
-rw-r--r-- | ppapi/proxy/interface_list.cc | 1 | ||||
-rw-r--r-- | ppapi/thunk/interfaces_ppb_private.h | 1 |
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, |