Chromium Code Reviews| Index: content/browser/renderer_host/pepper_message_filter.h |
| diff --git a/content/browser/renderer_host/pepper_message_filter.h b/content/browser/renderer_host/pepper_message_filter.h |
| index c2b9a51103cff5d0fc239e2e0d108626c7751aa3..1ebf697cd9b775c7c58415f223b345202b11d821 100644 |
| --- a/content/browser/renderer_host/pepper_message_filter.h |
| +++ b/content/browser/renderer_host/pepper_message_filter.h |
| @@ -15,6 +15,8 @@ |
| #include "base/process.h" |
| #include "base/time.h" |
| #include "content/public/browser/browser_message_filter.h" |
| +#include "net/base/network_change_notifier.h" |
| +#include "net/base/net_util.h" |
| #include "net/base/ssl_config_service.h" |
| #include "net/socket/stream_socket.h" |
| #include "ppapi/c/pp_resource.h" |
| @@ -46,7 +48,9 @@ struct HostPortPair; |
| // PPAPI plugins and any requests that the PPAPI implementation code in the |
| // renderer needs to make. The second is on the plugin->browser channel to |
| // handle requests that out-of-process plugins send directly to the browser. |
| -class PepperMessageFilter : public content::BrowserMessageFilter { |
| +class PepperMessageFilter |
| + : public content::BrowserMessageFilter, |
| + public net::NetworkChangeNotifier::IPAddressObserver { |
| public: |
| enum ProcessType { PLUGIN, RENDERER }; |
| @@ -70,6 +74,9 @@ class PepperMessageFilter : public content::BrowserMessageFilter { |
| virtual bool OnMessageReceived(const IPC::Message& message, |
| bool* message_was_ok) OVERRIDE; |
| + // net::NetworkChangeNotifier::IPAddressObserver interface. |
| + virtual void OnIPAddressChanged() OVERRIDE; |
| + |
| // Returns the host resolver (it may come from the resource context or the |
| // host_resolver_ member). |
| net::HostResolver* GetHostResolver(); |
| @@ -99,6 +106,12 @@ class PepperMessageFilter : public content::BrowserMessageFilter { |
| uint32 host_resolver_id; |
| }; |
| + typedef std::map<uint32, linked_ptr<PepperTCPSocket> > TCPSocketMap; |
|
dmichael (off chromium)
2012/03/16 19:55:22
It would be good to comment what the uint32 key re
Sergey Ulanov
2012/03/16 23:37:28
Done.
|
| + typedef std::map<uint32, linked_ptr<PepperUDPSocket> > UDPSocketMap; |
| + typedef std::map<uint32, |
| + linked_ptr<PepperTCPServerSocket> > TCPServerSocketMap; |
| + typedef std::set<uint32> NetworkMonitorIdSet; |
| + |
| #if defined(ENABLE_FLAPPER_HACKS) |
| // Message handlers. |
| void OnConnectTcp(int routing_id, |
| @@ -181,6 +194,9 @@ class PepperMessageFilter : public content::BrowserMessageFilter { |
| uint32 plugin_dispatcher_id, |
| uint32 host_resolver_id); |
| + void OnNetworkMonitorStart(uint32 plugin_dispatcher_id); |
| + void OnNetworkMonitorStop(uint32 plugin_dispatcher_id); |
| + |
| void DoTCPConnect(bool allowed, |
| int32 routing_id, |
| uint32 socket_id, |
| @@ -216,6 +232,10 @@ class PepperMessageFilter : public content::BrowserMessageFilter { |
| // Return true if render with given ID can use socket APIs. |
| bool CanUseSocketAPIs(int32 render_id); |
| + void GetAndSendNetworkList(); |
| + void DoGetNetworkList(); |
| + void SendNetworkList(scoped_ptr<net::NetworkInterfaceList> list); |
| + |
| ProcessType process_type_; |
| // Render process ID. |
| @@ -236,16 +256,13 @@ class PepperMessageFilter : public content::BrowserMessageFilter { |
| uint32 next_socket_id_; |
| - typedef std::map<uint32, linked_ptr<PepperTCPSocket> > TCPSocketMap; |
| TCPSocketMap tcp_sockets_; |
| - |
| - typedef std::map<uint32, linked_ptr<PepperUDPSocket> > UDPSocketMap; |
| UDPSocketMap udp_sockets_; |
| - |
| - typedef std::map<uint32, |
| - linked_ptr<PepperTCPServerSocket> > TCPServerSocketMap; |
| TCPServerSocketMap tcp_server_sockets_; |
| + NetworkMonitorIdSet network_monitor_ids_; |
| + bool monitoring_networks_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(PepperMessageFilter); |
| }; |