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 |