summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-13 00:10:41 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-13 00:10:41 +0000
commit2e80d054843a3c965f690ce83035363e192481b4 (patch)
treecb5a9245139e6abf93ecfeadfb3f35b84f9b055b /content/renderer
parente01ebcfe8ef32a51c5214b1e4db513cfcc4250b1 (diff)
downloadchromium_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.h4
-rw-r--r--content/renderer/p2p/socket_dispatcher.cc11
-rw-r--r--content/renderer/p2p/socket_dispatcher.h28
-rw-r--r--content/renderer/pepper/pepper_plugin_delegate_impl.cc26
-rw-r--r--content/renderer/pepper/pepper_plugin_delegate_impl.h6
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,