diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-13 00:10:41 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-13 00:10:41 +0000 |
commit | 2e80d054843a3c965f690ce83035363e192481b4 (patch) | |
tree | cb5a9245139e6abf93ecfeadfb3f35b84f9b055b /content/renderer | |
parent | e01ebcfe8ef32a51c5214b1e4db513cfcc4250b1 (diff) | |
download | chromium_src-2e80d054843a3c965f690ce83035363e192481b4.zip chromium_src-2e80d054843a3c965f690ce83035363e192481b4.tar.gz chromium_src-2e80d054843a3c965f690ce83035363e192481b4.tar.bz2 |
Implement PPB_NetworkMonitor_Private Pepper interface.
The P2PSocketDispatcher::NetworkListObserver has been moved
to webkit_glue:: namespace in webkit/glue/network_list_observer.h . PPB_NetworkMonitor_Private_Impl uses P2PSocketDispatcher to get
notifications about network changes.
BUG=114808
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=125761
Review URL: http://codereview.chromium.org/9557006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126274 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/p2p/ipc_network_manager.h | 4 | ||||
-rw-r--r-- | content/renderer/p2p/socket_dispatcher.cc | 11 | ||||
-rw-r--r-- | content/renderer/p2p/socket_dispatcher.h | 28 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_plugin_delegate_impl.cc | 26 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_plugin_delegate_impl.h | 6 |
5 files changed, 50 insertions, 25 deletions
diff --git a/content/renderer/p2p/ipc_network_manager.h b/content/renderer/p2p/ipc_network_manager.h index 68e4234..9c16a31 100644 --- a/content/renderer/p2p/ipc_network_manager.h +++ b/content/renderer/p2p/ipc_network_manager.h @@ -11,15 +11,15 @@ #include "base/memory/weak_ptr.h" #include "content/common/content_export.h" #include "content/renderer/p2p/socket_dispatcher.h" -#include "net/base/net_util.h" #include "third_party/libjingle/source/talk/base/network.h" +#include "webkit/glue/network_list_observer.h" namespace content { // IpcNetworkManager is a NetworkManager for libjingle that gets a // list of network interfaces from the browser. class IpcNetworkManager : public talk_base::NetworkManagerBase, - public P2PSocketDispatcher::NetworkListObserver { + public webkit_glue::NetworkListObserver { public: // Constructor doesn't take ownership of the |socket_dispatcher|. CONTENT_EXPORT IpcNetworkManager(P2PSocketDispatcher* socket_dispatcher); diff --git a/content/renderer/p2p/socket_dispatcher.cc b/content/renderer/p2p/socket_dispatcher.cc index 7d951e9..4e90471 100644 --- a/content/renderer/p2p/socket_dispatcher.cc +++ b/content/renderer/p2p/socket_dispatcher.cc @@ -11,6 +11,7 @@ #include "content/renderer/p2p/host_address_request.h" #include "content/renderer/p2p/socket_client.h" #include "content/renderer/render_view_impl.h" +#include "webkit/glue/network_list_observer.h" namespace content { @@ -50,7 +51,7 @@ P2PSocketDispatcher::P2PSocketDispatcher(RenderViewImpl* render_view) message_loop_(base::MessageLoopProxy::current()), network_notifications_started_(false), network_list_observers_( - new ObserverListThreadSafe<NetworkListObserver>()), + new ObserverListThreadSafe<webkit_glue::NetworkListObserver>()), async_message_sender_(new AsyncMessageSender(this)) { } @@ -66,7 +67,7 @@ P2PSocketDispatcher::~P2PSocketDispatcher() { } void P2PSocketDispatcher::AddNetworkListObserver( - NetworkListObserver* network_list_observer) { + webkit_glue::NetworkListObserver* network_list_observer) { network_list_observers_->AddObserver(network_list_observer); network_notifications_started_ = true; async_message_sender_->Send( @@ -74,7 +75,7 @@ void P2PSocketDispatcher::AddNetworkListObserver( } void P2PSocketDispatcher::RemoveNetworkListObserver( - NetworkListObserver* network_list_observer) { + webkit_glue::NetworkListObserver* network_list_observer) { network_list_observers_->RemoveObserver(network_list_observer); } @@ -120,8 +121,8 @@ void P2PSocketDispatcher::UnregisterHostAddressRequest(int id) { void P2PSocketDispatcher::OnNetworkListChanged( const net::NetworkInterfaceList& networks) { - network_list_observers_->Notify(&NetworkListObserver::OnNetworkListChanged, - networks); + network_list_observers_->Notify( + &webkit_glue::NetworkListObserver::OnNetworkListChanged, networks); } void P2PSocketDispatcher::OnGetHostAddressResult( diff --git a/content/renderer/p2p/socket_dispatcher.h b/content/renderer/p2p/socket_dispatcher.h index 58eade1..eb81de3 100644 --- a/content/renderer/p2p/socket_dispatcher.h +++ b/content/renderer/p2p/socket_dispatcher.h @@ -41,6 +41,10 @@ namespace net { class IPEndPoint; } // namespace net +namespace webkit_glue { +class NetworkListObserver; +} // webkit_glue + namespace content { class P2PHostAddressRequest; @@ -51,30 +55,18 @@ class P2PSocketClient; // same thread. class CONTENT_EXPORT P2PSocketDispatcher : public content::RenderViewObserver { public: - class NetworkListObserver { - public: - virtual ~NetworkListObserver() { } - - virtual void OnNetworkListChanged( - const net::NetworkInterfaceList& list) = 0; - - protected: - NetworkListObserver() { } - - private: - DISALLOW_COPY_AND_ASSIGN(NetworkListObserver); - }; - explicit P2PSocketDispatcher(RenderViewImpl* render_view); virtual ~P2PSocketDispatcher(); // Add a new network list observer. Each observer is called - // immidiately after its't registered and then later whenever + // immidiately after it is registered and then later whenever // network configuration changes. - void AddNetworkListObserver(NetworkListObserver* network_list_observer); + void AddNetworkListObserver( + webkit_glue::NetworkListObserver* network_list_observer); // Removes network list observer. - void RemoveNetworkListObserver(NetworkListObserver* network_list_observer); + void RemoveNetworkListObserver( + webkit_glue::NetworkListObserver* network_list_observer); // RenderViewObserver overrides. virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; @@ -113,7 +105,7 @@ class CONTENT_EXPORT P2PSocketDispatcher : public content::RenderViewObserver { IDMap<P2PHostAddressRequest> host_address_requests_; bool network_notifications_started_; - scoped_refptr<ObserverListThreadSafe<NetworkListObserver> > + scoped_refptr<ObserverListThreadSafe<webkit_glue::NetworkListObserver> > network_list_observers_; scoped_refptr<AsyncMessageSender> async_message_sender_; diff --git a/content/renderer/pepper/pepper_plugin_delegate_impl.cc b/content/renderer/pepper/pepper_plugin_delegate_impl.cc index 82f1acc..c2041e7 100644 --- a/content/renderer/pepper/pepper_plugin_delegate_impl.cc +++ b/content/renderer/pepper/pepper_plugin_delegate_impl.cc @@ -38,6 +38,7 @@ #include "content/renderer/media/media_stream_dispatcher.h" #include "content/renderer/media/pepper_platform_video_decoder_impl.h" #include "content/renderer/p2p/p2p_transport_impl.h" +#include "content/renderer/p2p/socket_dispatcher.h" #include "content/renderer/pepper/pepper_broker_impl.h" #include "content/renderer/pepper/pepper_device_enumeration_event_handler.h" #include "content/renderer/pepper/pepper_platform_audio_input_impl.h" @@ -1089,6 +1090,31 @@ void PepperPluginDelegateImpl::TCPServerSocketStopListening( } } +bool PepperPluginDelegateImpl::AddNetworkListObserver( + webkit_glue::NetworkListObserver* observer) { +#if defined(ENABLE_P2P_APIS) + content::P2PSocketDispatcher* socket_dispatcher = + render_view_->p2p_socket_dispatcher(); + if (!socket_dispatcher) { + return false; + } + socket_dispatcher->AddNetworkListObserver(observer); + return true; +#else + return false; +#endif +} + +void PepperPluginDelegateImpl::RemoveNetworkListObserver( + webkit_glue::NetworkListObserver* observer) { +#if defined(ENABLE_P2P_APIS) + content::P2PSocketDispatcher* socket_dispatcher = + render_view_->p2p_socket_dispatcher(); + if (socket_dispatcher) + socket_dispatcher->RemoveNetworkListObserver(observer); +#endif +} + int32_t PepperPluginDelegateImpl::ShowContextMenu( webkit::ppapi::PluginInstance* instance, webkit::ppapi::PPB_Flash_Menu_Impl* menu, diff --git a/content/renderer/pepper/pepper_plugin_delegate_impl.h b/content/renderer/pepper/pepper_plugin_delegate_impl.h index a17df04..f5519b4 100644 --- a/content/renderer/pepper/pepper_plugin_delegate_impl.h +++ b/content/renderer/pepper/pepper_plugin_delegate_impl.h @@ -15,6 +15,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" +#include "base/observer_list.h" #include "content/common/content_export.h" #include "content/public/renderer/render_view_observer.h" #include "content/renderer/mouse_lock_dispatcher.h" @@ -300,6 +301,11 @@ class PepperPluginDelegateImpl virtual void TCPServerSocketStopListening(uint32 real_socket_id, uint32 temp_socket_id) OVERRIDE; + virtual bool AddNetworkListObserver( + webkit_glue::NetworkListObserver* observer) OVERRIDE; + virtual void RemoveNetworkListObserver( + webkit_glue::NetworkListObserver* observer) OVERRIDE; + virtual int32_t ShowContextMenu( webkit::ppapi::PluginInstance* instance, webkit::ppapi::PPB_Flash_Menu_Impl* menu, |