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

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

Issue 2269833002: Refactor the DataUseMeasurement class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More mechanical changes Created 4 years, 4 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 e45368ae1b65ca1c67fdb70a3ddccd2e30be4ff1..dd70ad5607af5aa785fc97068c66054f5eb9af94 100644
--- a/components/data_use_measurement/content/data_use_measurement.cc
+++ b/components/data_use_measurement/content/data_use_measurement.cc
@@ -59,16 +59,28 @@ DataUseMeasurement::DataUseMeasurement(
DataUseMeasurement::~DataUseMeasurement(){};
-void DataUseMeasurement::ReportDataUseUMA(
- const net::URLRequest* request) const {
+void DataUseMeasurement::OnBeforeRedirect(const net::URLRequest& request,
+ const GURL& new_location) {
+ // Recording data use of request on redirects.
+ ReportDataUseUMA(request);
+}
+void DataUseMeasurement::OnCompleted(const net::URLRequest& request,
+ bool started) {
+ // TODO(amohammadkhan): Verify that there is no double recording in data use
+ // of redirected requests.
+ ReportDataUseUMA(request);
+}
+
+void DataUseMeasurement::ReportDataUseUMA(
+ const net::URLRequest& request) const {
// Counts rely on URLRequest::GetTotalReceivedBytes() and
// URLRequest::GetTotalSentBytes(), which does not include the send path,
// network layer overhead, TLS overhead, and DNS.
// TODO(amohammadkhan): Make these measured bytes more in line with number of
// bytes in lower levels.
- int64_t total_upload_bytes = request->GetTotalSentBytes();
- int64_t total_received_bytes = request->GetTotalReceivedBytes();
+ int64_t total_upload_bytes = request.GetTotalSentBytes();
+ int64_t total_received_bytes = request.GetTotalReceivedBytes();
bool is_user_traffic = IsUserInitiatedRequest(request);
bool is_connection_cellular =
@@ -86,7 +98,7 @@ void DataUseMeasurement::ReportDataUseUMA(
total_received_bytes);
DataUseUserData* attached_service_data = reinterpret_cast<DataUseUserData*>(
- request->GetUserData(DataUseUserData::kUserDataKey));
+ request.GetUserData(DataUseUserData::kUserDataKey));
DataUseUserData::ServiceName service_name =
attached_service_data ? attached_service_data->service_name()
: DataUseUserData::NOT_TAGGED;
@@ -107,7 +119,7 @@ void DataUseMeasurement::ReportDataUseUMA(
// static
bool DataUseMeasurement::IsUserInitiatedRequest(
- const net::URLRequest* request) {
+ const net::URLRequest& request) {
// Having ResourceRequestInfo in the URL request is a sign that the request is
// for a web content from user. For now we could add a condition to check
// ProcessType in info is content::PROCESS_TYPE_RENDERER, but it won't be
@@ -116,7 +128,7 @@ bool DataUseMeasurement::IsUserInitiatedRequest(
// with upcoming changes in PlzNavigate.
// TODO(rajendrant): Verify this condition for different use cases. See
// crbug.com/626063.
- return content::ResourceRequestInfo::ForRequest(request) != nullptr;
+ return content::ResourceRequestInfo::ForRequest(&request) != nullptr;
}
#if defined(OS_ANDROID)

Powered by Google App Engine
This is Rietveld 408576698