| Index: chrome/browser/metrics/metrics_network_observer.cc
|
| diff --git a/chrome/browser/metrics/metrics_network_observer.cc b/chrome/browser/metrics/metrics_network_observer.cc
|
| index 9717d1d837236d1067bff08a32626a3571acfad3..dd4fcf2042cf58288ea9a946d705b782518af0fc 100644
|
| --- a/chrome/browser/metrics/metrics_network_observer.cc
|
| +++ b/chrome/browser/metrics/metrics_network_observer.cc
|
| @@ -9,6 +9,20 @@
|
| #include "base/threading/sequenced_worker_pool.h"
|
| #include "content/public/browser/browser_thread.h"
|
|
|
| +#if defined(OS_ANDROID)
|
| +#include "content/common/android/device_telephony_info.h"
|
| +#endif
|
| +
|
| +#if defined(OS_ANDROID)
|
| +namespace {
|
| +
|
| + std::string GetAndroidNetworkOperatorID() {
|
| + content::DeviceTelephonyInfo device_info;
|
| + return device_info.GetNetworkOperator();
|
| + }
|
| +
|
| +}
|
| +#endif
|
|
|
| MetricsNetworkObserver::MetricsNetworkObserver()
|
| : weak_ptr_factory_(this),
|
| @@ -18,6 +32,7 @@ MetricsNetworkObserver::MetricsNetworkObserver()
|
| net::NetworkChangeNotifier::AddConnectionTypeObserver(this);
|
| connection_type_ = net::NetworkChangeNotifier::GetConnectionType();
|
| ProbeWifiPHYLayerProtocol();
|
| + GetNetworkOperatorID();
|
| }
|
|
|
| MetricsNetworkObserver::~MetricsNetworkObserver() {
|
| @@ -41,6 +56,7 @@ void MetricsNetworkObserver::OnConnectionTypeChanged(
|
| connection_type_ = type;
|
|
|
| ProbeWifiPHYLayerProtocol();
|
| + GetNetworkOperatorID();
|
| }
|
|
|
| SystemProfileProto::Network::ConnectionType
|
| @@ -104,3 +120,17 @@ void MetricsNetworkObserver::OnWifiPHYLayerProtocolResult(
|
| wifi_phy_layer_protocol_ = mode;
|
| }
|
|
|
| +void MetricsNetworkObserver::GetNetworkOperatorID() {
|
| +#if defined(OS_ANDROID)
|
| + PostTaskAndReplyWithResult(
|
| + content::BrowserThread::GetBlockingPool(),
|
| + FROM_HERE,
|
| + base::Bind(&GetAndroidNetworkOperatorID),
|
| + base::Bind(&MetricsNetworkObserver::OnNetworkOperatorID,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| +#endif
|
| +}
|
| +
|
| +void MetricsNetworkObserver::OnNetworkOperatorID(std::string id) {
|
| + network_operator_id_ = id;
|
| +}
|
|
|