Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(992)

Unified Diff: components/data_use_measurement/content/data_use_measurement.cc

Issue 1818613002: Implement UMA log throttling for cellular connections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: singleton pattern removed Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698