Commit dd7865c4 authored by Robbie McElrath's avatar Robbie McElrath Committed by Commit Bot

Migrate content::PepperNetworkMonitorHost to NetworkConnectionTracker

This migrates content::PepperNetworkMonitorHost from
NetworkChangeNotifier to NetworkConnectionTracker, which works with the
network service enabled.

Bug: 887046
Change-Id: I6fcd03fa664689cc6bcc16ff80b86fdba75d695d
Reviewed-on: https://chromium-review.googlesource.com/1236560
Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
Reviewed-by: default avatarBill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593672}
parent 43b3f48d
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "content/browser/renderer_host/pepper/pepper_socket_utils.h" #include "content/browser/renderer_host/pepper/pepper_socket_utils.h"
#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/common/socket_permission_request.h" #include "content/public/common/socket_permission_request.h"
#include "ppapi/proxy/ppapi_messages.h" #include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/shared_impl/private/net_address_private_impl.h" #include "ppapi/shared_impl/private/net_address_private_impl.h"
...@@ -47,6 +48,7 @@ PepperNetworkMonitorHost::PepperNetworkMonitorHost(BrowserPpapiHostImpl* host, ...@@ -47,6 +48,7 @@ PepperNetworkMonitorHost::PepperNetworkMonitorHost(BrowserPpapiHostImpl* host,
PP_Instance instance, PP_Instance instance,
PP_Resource resource) PP_Resource resource)
: ResourceHost(host->GetPpapiHost(), instance, resource), : ResourceHost(host->GetPpapiHost(), instance, resource),
network_connection_tracker_(nullptr),
weak_factory_(this) { weak_factory_(this) {
int render_process_id; int render_process_id;
int render_frame_id; int render_frame_id;
...@@ -62,12 +64,16 @@ PepperNetworkMonitorHost::PepperNetworkMonitorHost(BrowserPpapiHostImpl* host, ...@@ -62,12 +64,16 @@ PepperNetworkMonitorHost::PepperNetworkMonitorHost(BrowserPpapiHostImpl* host,
} }
PepperNetworkMonitorHost::~PepperNetworkMonitorHost() { PepperNetworkMonitorHost::~PepperNetworkMonitorHost() {
net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); if (network_connection_tracker_)
network_connection_tracker_->RemoveNetworkConnectionObserver(this);
} }
void PepperNetworkMonitorHost::OnNetworkChanged( void PepperNetworkMonitorHost::OnConnectionChanged(
net::NetworkChangeNotifier::ConnectionType type) { network::mojom::ConnectionType type) {
if (type == net::NetworkChangeNotifier::GetConnectionType()) auto current_type = network::mojom::ConnectionType::CONNECTION_UNKNOWN;
network_connection_tracker_->GetConnectionType(&current_type,
base::DoNothing());
if (type == current_type)
GetAndSendNetworkList(); GetAndSendNetworkList();
} }
...@@ -79,10 +85,21 @@ void PepperNetworkMonitorHost::OnPermissionCheckResult( ...@@ -79,10 +85,21 @@ void PepperNetworkMonitorHost::OnPermissionCheckResult(
return; return;
} }
net::NetworkChangeNotifier::AddNetworkChangeObserver(this); base::PostTaskWithTraitsAndReplyWithResult(
FROM_HERE, {BrowserThread::UI},
base::BindOnce(&content::GetNetworkConnectionTracker),
base::BindOnce(&PepperNetworkMonitorHost::SetNetworkConnectionTracker,
weak_factory_.GetWeakPtr()));
GetAndSendNetworkList(); GetAndSendNetworkList();
} }
void PepperNetworkMonitorHost::SetNetworkConnectionTracker(
network::NetworkConnectionTracker* network_connection_tracker) {
DCHECK_EQ(network_connection_tracker_, nullptr);
network_connection_tracker_ = network_connection_tracker;
network_connection_tracker_->AddNetworkConnectionObserver(this);
}
void PepperNetworkMonitorHost::GetAndSendNetworkList() { void PepperNetworkMonitorHost::GetAndSendNetworkList() {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
......
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "net/base/network_change_notifier.h"
#include "net/base/network_interfaces.h" #include "net/base/network_interfaces.h"
#include "ppapi/host/host_message_context.h" #include "ppapi/host/host_message_context.h"
#include "ppapi/host/resource_host.h" #include "ppapi/host/resource_host.h"
#include "services/network/public/cpp/network_connection_tracker.h"
namespace content { namespace content {
...@@ -21,7 +21,7 @@ class BrowserPpapiHostImpl; ...@@ -21,7 +21,7 @@ class BrowserPpapiHostImpl;
// The host for PPB_NetworkMonitor. This class lives on the IO thread. // The host for PPB_NetworkMonitor. This class lives on the IO thread.
class CONTENT_EXPORT PepperNetworkMonitorHost class CONTENT_EXPORT PepperNetworkMonitorHost
: public ppapi::host::ResourceHost, : public ppapi::host::ResourceHost,
public net::NetworkChangeNotifier::NetworkChangeObserver { public network::NetworkConnectionTracker::NetworkConnectionObserver {
public: public:
PepperNetworkMonitorHost(BrowserPpapiHostImpl* host, PepperNetworkMonitorHost(BrowserPpapiHostImpl* host,
PP_Instance instance, PP_Instance instance,
...@@ -29,18 +29,21 @@ class CONTENT_EXPORT PepperNetworkMonitorHost ...@@ -29,18 +29,21 @@ class CONTENT_EXPORT PepperNetworkMonitorHost
~PepperNetworkMonitorHost() override; ~PepperNetworkMonitorHost() override;
// net::NetworkChangeNotifier::NetworkChangeObserver interface. // network::NetworkConnectionTracker::NetworkConnectionObserver interface.
void OnNetworkChanged( void OnConnectionChanged(network::mojom::ConnectionType type) override;
net::NetworkChangeNotifier::ConnectionType type) override;
private: private:
void OnPermissionCheckResult(bool can_use_network_monitor); void OnPermissionCheckResult(bool can_use_network_monitor);
void SetNetworkConnectionTracker(
network::NetworkConnectionTracker* network_connection_tracker);
void GetAndSendNetworkList(); void GetAndSendNetworkList();
void SendNetworkList(std::unique_ptr<net::NetworkInterfaceList> list); void SendNetworkList(std::unique_ptr<net::NetworkInterfaceList> list);
ppapi::host::ReplyMessageContext reply_context_; ppapi::host::ReplyMessageContext reply_context_;
network::NetworkConnectionTracker* network_connection_tracker_;
base::WeakPtrFactory<PepperNetworkMonitorHost> weak_factory_; base::WeakPtrFactory<PepperNetworkMonitorHost> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(PepperNetworkMonitorHost); DISALLOW_COPY_AND_ASSIGN(PepperNetworkMonitorHost);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment