Commit 2d0fd0cb authored by Lily Houghton's avatar Lily Houghton Committed by Commit Bot

Replace LoggingNetworkChangeObserver in IOSIOThread with class from net/

IPAddressObserver and ConnectionTypeObserver are deprecated in favor of
NetworkChangeObserver.  This CL replaces a class that subclasses them with
an (almost identical) internal class which does not expose them directly.

For more details see the design doc linked in the bug below.

Bug: 754695
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ic65ce6aa4df57893504e9eaf3042fb2deb355115
Reviewed-on: https://chromium-review.googlesource.com/1133325
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
Reviewed-by: default avatarPaul Jensen <pauljensen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577181}
parent 0e0f22b7
......@@ -38,6 +38,7 @@ class HttpAuthPreferences;
class HttpServerProperties;
class HttpTransactionFactory;
class HttpUserAgentSettings;
class LoggingNetworkChangeObserver;
class NetworkDelegate;
class ProxyConfigService;
class ProxyResolutionService;
......@@ -201,8 +202,7 @@ class IOSIOThread : public web::WebThreadDelegate {
net::HttpNetworkSession::Params params_;
// Observer that logs network changes to the ChromeNetLog.
class LoggingNetworkChangeObserver;
std::unique_ptr<LoggingNetworkChangeObserver> network_change_observer_;
std::unique_ptr<net::LoggingNetworkChangeObserver> network_change_observer_;
// These member variables are initialized by a task posted to the IO thread,
// which gets posted by calling certain member functions of IOSIOThread.
......
......@@ -36,6 +36,7 @@
#include "ios/web/public/user_agent.h"
#include "ios/web/public/web_client.h"
#include "ios/web/public/web_thread.h"
#include "net/base/logging_network_change_observer.h"
#include "net/cert/cert_verifier.h"
#include "net/cert/ct_policy_enforcer.h"
#include "net/cert/ct_verifier.h"
......@@ -103,65 +104,6 @@ std::unique_ptr<net::HostResolver> CreateGlobalHostResolver(
return global_host_resolver;
}
class IOSIOThread::LoggingNetworkChangeObserver
: public net::NetworkChangeNotifier::IPAddressObserver,
public net::NetworkChangeNotifier::ConnectionTypeObserver,
public net::NetworkChangeNotifier::NetworkChangeObserver {
public:
// |net_log| must remain valid throughout our lifetime.
explicit LoggingNetworkChangeObserver(net::NetLog* net_log)
: net_log_(net_log) {
net::NetworkChangeNotifier::AddIPAddressObserver(this);
net::NetworkChangeNotifier::AddConnectionTypeObserver(this);
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
}
~LoggingNetworkChangeObserver() override {
net::NetworkChangeNotifier::RemoveIPAddressObserver(this);
net::NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
}
// NetworkChangeNotifier::IPAddressObserver implementation.
void OnIPAddressChanged() override {
VLOG(1) << "Observed a change to the network IP addresses";
net_log_->AddGlobalEntry(
net::NetLogEventType::NETWORK_IP_ADDRESSES_CHANGED);
}
// NetworkChangeNotifier::ConnectionTypeObserver implementation.
void OnConnectionTypeChanged(
net::NetworkChangeNotifier::ConnectionType type) override {
std::string type_as_string =
net::NetworkChangeNotifier::ConnectionTypeToString(type);
VLOG(1) << "Observed a change to network connectivity state "
<< type_as_string;
net_log_->AddGlobalEntry(
net::NetLogEventType::NETWORK_CONNECTIVITY_CHANGED,
net::NetLog::StringCallback("new_connection_type", &type_as_string));
}
// NetworkChangeNotifier::NetworkChangeObserver implementation.
void OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType type) override {
std::string type_as_string =
net::NetworkChangeNotifier::ConnectionTypeToString(type);
VLOG(1) << "Observed a network change to state " << type_as_string;
net_log_->AddGlobalEntry(
net::NetLogEventType::NETWORK_CHANGED,
net::NetLog::StringCallback("new_connection_type", &type_as_string));
}
private:
net::NetLog* net_log_;
DISALLOW_COPY_AND_ASSIGN(LoggingNetworkChangeObserver);
};
class SystemURLRequestContextGetter : public net::URLRequestContextGetter {
public:
explicit SystemURLRequestContextGetter(IOSIOThread* io_thread);
......@@ -298,7 +240,8 @@ void IOSIOThread::Init() {
// Add an observer that will emit network change events to the ChromeNetLog.
// Assuming NetworkChangeNotifier dispatches in FIFO order, we should be
// logging the network change before other IO thread consumers respond to it.
network_change_observer_.reset(new LoggingNetworkChangeObserver(net_log_));
network_change_observer_ =
std::make_unique<net::LoggingNetworkChangeObserver>(net_log_);
globals_->system_network_delegate = CreateSystemNetworkDelegate();
globals_->host_resolver = CreateGlobalHostResolver(net_log_);
......
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