Chromium Code Reviews| Index: components/data_use_measurement/content/data_use_measurement.cc |
| diff --git a/components/data_use_measurement/content/data_use_measurement.cc b/components/data_use_measurement/content/data_use_measurement.cc |
| index 23f916c6ae054c38efb296be694b623aa91cd5ab..2c4b741cc3c47eab53693f9d68dc1ce2bfabfc90 100644 |
| --- a/components/data_use_measurement/content/data_use_measurement.cc |
| +++ b/components/data_use_measurement/content/data_use_measurement.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/metrics/sparse_histogram.h" |
| #include "base/strings/stringprintf.h" |
| #include "build/build_config.h" |
| +#include "components/metrics/data_use_tracker.h" |
| #include "content/public/browser/resource_request_info.h" |
| #include "net/base/network_change_notifier.h" |
| #include "net/base/upload_data_stream.h" |
| @@ -49,9 +50,10 @@ DataUseMeasurement::DataUseMeasurement() |
| : app_state_(base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES), |
| app_listener_(new base::android::ApplicationStatusListener( |
| base::Bind(&DataUseMeasurement::OnApplicationStateChange, |
| - base::Unretained(this)))) |
| + base::Unretained(this)))), |
| + weak_ptr_factory_(this) |
| #endif |
| -{ |
| + : weak_ptr_factory_(this) { |
| } |
| DataUseMeasurement::~DataUseMeasurement(){}; |
| @@ -88,14 +90,22 @@ void DataUseMeasurement::ReportDataUseUMA( |
| DataUseUserData* attached_service_data = reinterpret_cast<DataUseUserData*>( |
| request->GetUserData(DataUseUserData::kUserDataKey)); |
| - |
| + DataUseUserData::ServiceName service_name = |
| + attached_service_data ? attached_service_data->service_name() |
| + : DataUseUserData::NOT_TAGGED; |
| if (!is_user_traffic) { |
| - DataUseUserData::ServiceName service_name = |
| - attached_service_data ? attached_service_data->service_name() |
| - : DataUseUserData::NOT_TAGGED; |
| ReportDataUsageServices(service_name, UPSTREAM, total_upload_bytes); |
| ReportDataUsageServices(service_name, DOWNSTREAM, total_received_bytes); |
| } |
| + bool is_cellular = net::NetworkChangeNotifier::IsConnectionCellular( |
| + net::NetworkChangeNotifier::GetConnectionType()); |
| + if (is_cellular) |
|
Alexei Svitkine (slow)
2016/03/29 16:29:10
Nit: Combine this with if below.
gayane -on leave until 09-2017
2016/03/31 01:38:24
Done.
|
| + if (!metrics_data_use_forwarder_.is_null()) { |
| + metrics::DataUseTracker::RunOnUI( |
| + metrics_data_use_forwarder_, |
| + attached_service_data->GetServiceNameAsString(service_name), |
| + total_upload_bytes + total_received_bytes); |
| + } |
| } |
| #if defined(OS_ANDROID) |
| @@ -146,4 +156,12 @@ void DataUseMeasurement::ReportDataUsageServices( |
| } |
| } |
| +void DataUseMeasurement::SetMetricsDataUseForwarder( |
| + base::Callback<void(const std::string&, int)> metrics_data_use_forwarder) { |
| + metrics_data_use_forwarder_ = metrics_data_use_forwarder; |
| +} |
| + |
| +base::WeakPtr<DataUseMeasurement> DataUseMeasurement::GetWeakPtr() { |
| + return weak_ptr_factory_.GetWeakPtr(); |
| +} |
| } // namespace data_use_measurement |