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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc

Issue 1286643002: Fix UMA to track video data usage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Init prefs in compression stats map Created 5 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_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
index b49659f308081a3a96063a8eddefc4a55313e6ba..64817ad36a5d8c2b9ba9957a2d173b244578137e 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc
@@ -31,6 +31,18 @@ namespace data_reduction_proxy {
namespace {
+#define CONCAT(a, b) a##b
+// CONCAT1 provides extra level of indirection so that __LINE__ macro expands.
+#define CONCAT1(a, b) CONCAT(a, b)
+#define UNIQUE_VARNAME CONCAT1(var_, __LINE__)
+// We need to use a macro instead of a method because UMA_HISTOGRAM_COUNTS
+// requires its first argument to be an inline string and not a variable.
+#define RECORD_INT64PREF_TO_HISTOGRAM(pref, uma) \
+ int64 UNIQUE_VARNAME = GetInt64(pref); \
+ if (UNIQUE_VARNAME > 0) { \
+ UMA_HISTOGRAM_COUNTS(uma, UNIQUE_VARNAME >> 10); \
+ }
+
// Returns the value at |index| of |list_value| as an int64.
int64 GetInt64PrefValue(const base::ListValue& list_value, size_t index) {
int64 val = 0;
@@ -101,8 +113,7 @@ void RecordDailyContentLengthHistograms(
int64 https_length_with_data_reduction_enabled,
int64 short_bypass_length_with_data_reduction_enabled,
int64 long_bypass_length_with_data_reduction_enabled,
- int64 unknown_length_with_data_reduction_enabled,
- const std::string& mime_type) {
+ int64 unknown_length_with_data_reduction_enabled) {
// Report daily UMA only for days having received content.
if (original_length <= 0 || received_length <= 0)
return;
@@ -113,24 +124,6 @@ void RecordDailyContentLengthHistograms(
UMA_HISTOGRAM_COUNTS(
"Net.DailyContentLength", received_length >> 10);
- bool is_application = net::MatchesMimeType("application/*", mime_type);
- bool is_video = net::MatchesMimeType("video/*", mime_type);
- bool is_mime_type_empty = mime_type.empty();
- if (is_application) {
- UMA_HISTOGRAM_COUNTS("Net.DailyOriginalContentLength_Application",
- original_length >> 10);
- UMA_HISTOGRAM_COUNTS("Net.DailyContentLength_Application",
- received_length >> 10);
- } else if (is_video) {
- UMA_HISTOGRAM_COUNTS("Net.DailyOriginalContentLength_Video",
- original_length >> 10);
- UMA_HISTOGRAM_COUNTS("Net.DailyContentLength_Video", received_length >> 10);
- } else if (is_mime_type_empty) {
- UMA_HISTOGRAM_COUNTS("Net.DailyOriginalContentLength_UnknownMime",
- original_length >> 10);
- UMA_HISTOGRAM_COUNTS("Net.DailyContentLength_UnknownMime",
- received_length >> 10);
- }
int percent = 0;
// UMA percentage cannot be negative.
if (original_length > received_length) {
@@ -150,29 +143,6 @@ void RecordDailyContentLengthHistograms(
"Net.DailyContentLength_DataReductionProxyEnabled",
received_length_with_data_reduction_enabled >> 10);
- if (is_application) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_DataReductionProxyEnabled_Application",
- original_length_with_data_reduction_enabled >> 10);
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyContentLength_DataReductionProxyEnabled_Application",
- received_length_with_data_reduction_enabled >> 10);
- } else if (is_video) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_DataReductionProxyEnabled_Video",
- original_length_with_data_reduction_enabled >> 10);
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyContentLength_DataReductionProxyEnabled_Video",
- received_length_with_data_reduction_enabled >> 10);
- } else if (is_mime_type_empty) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_DataReductionProxyEnabled_UnknownMime",
- original_length_with_data_reduction_enabled >> 10);
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyContentLength_DataReductionProxyEnabled_UnknownMime",
- received_length_with_data_reduction_enabled >> 10);
- }
-
int percent_data_reduction_proxy_enabled = 0;
// UMA percentage cannot be negative.
if (original_length_with_data_reduction_enabled >
@@ -234,28 +204,6 @@ void RecordDailyContentLengthHistograms(
"Net.DailyContentLength_ViaDataReductionProxy",
received_length_via_data_reduction_proxy >> 10);
- if (is_application) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_ViaDataReductionProxy_Application",
- original_length_via_data_reduction_proxy >> 10);
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyContentLength_ViaDataReductionProxy_Application",
- received_length_via_data_reduction_proxy >> 10);
- } else if (is_video) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_ViaDataReductionProxy_Video",
- original_length_via_data_reduction_proxy >> 10);
- UMA_HISTOGRAM_COUNTS("Net.DailyContentLength_ViaDataReductionProxy_Video",
- received_length_via_data_reduction_proxy >> 10);
- } else if (is_mime_type_empty) {
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyOriginalContentLength_ViaDataReductionProxy_UnknownMime",
- original_length_via_data_reduction_proxy >> 10);
- UMA_HISTOGRAM_COUNTS(
- "Net.DailyContentLength_ViaDataReductionProxy_UnknownMime",
- received_length_via_data_reduction_proxy >> 10);
- }
-
int percent_via_data_reduction_proxy = 0;
if (original_length_via_data_reduction_proxy >
received_length_via_data_reduction_proxy) {
@@ -448,6 +396,33 @@ void DataReductionProxyCompressionStats::Init() {
InitInt64Pref(prefs::kHttpReceivedContentLength);
InitInt64Pref(prefs::kHttpOriginalContentLength);
+ InitInt64Pref(prefs::kDailyHttpOriginalContentLengthApplication);
+ InitInt64Pref(prefs::kDailyHttpOriginalContentLengthVideo);
+ InitInt64Pref(prefs::kDailyHttpOriginalContentLengthUnknown);
+ InitInt64Pref(prefs::kDailyHttpReceivedContentLengthApplication);
+ InitInt64Pref(prefs::kDailyHttpReceivedContentLengthVideo);
+ InitInt64Pref(prefs::kDailyHttpReceivedContentLengthUnknown);
+
+ InitInt64Pref(
+ prefs::kDailyOriginalContentLengthViaDataReductionProxyApplication);
+ InitInt64Pref(prefs::kDailyOriginalContentLengthViaDataReductionProxyVideo);
+ InitInt64Pref(prefs::kDailyOriginalContentLengthViaDataReductionProxyUnknown);
+ InitInt64Pref(prefs::kDailyContentLengthViaDataReductionProxyApplication);
+ InitInt64Pref(prefs::kDailyContentLengthViaDataReductionProxyVideo);
+ InitInt64Pref(prefs::kDailyContentLengthViaDataReductionProxyUnknown);
+
+ InitInt64Pref(
+ prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledApplication);
+ InitInt64Pref(
+ prefs::kDailyOriginalContentLengthWithDataReductionProxyEnabledVideo);
+ InitInt64Pref(
+ prefs::kDailyOriginalContentLengthWithDataReductionProxyEnabledUnknown);
+ InitInt64Pref(
+ prefs::kDailyContentLengthWithDataReductionProxyEnabledApplication);
+ InitInt64Pref(prefs::kDailyContentLengthWithDataReductionProxyEnabledVideo);
+ InitInt64Pref(prefs::kDailyContentLengthWithDataReductionProxyEnabledUnknown);
+
// Init all list prefs.
InitListPref(prefs::kDailyContentLengthHttpsWithDataReductionProxyEnabled);
InitListPref(
@@ -538,6 +513,12 @@ void DataReductionProxyCompressionStats::SetInt64(const char* pref_path,
pref_map_[pref_path] = pref_value;
}
+void DataReductionProxyCompressionStats::IncrementInt64Pref(
+ const char* pref_path,
+ int64_t pref_increment) {
+ SetInt64(pref_path, GetInt64(pref_path) + pref_increment);
+}
+
base::ListValue* DataReductionProxyCompressionStats::GetList(
const char* pref_path) {
if (delay_ == base::TimeDelta())
@@ -768,50 +749,219 @@ void DataReductionProxyCompressionStats::RecordRequestSizePrefs(
}
base::Time midnight = now.LocalMidnight();
- int days_since_last_update = (midnight - then_midnight).InDays();
-
- // Each day, we calculate the total number of bytes received and the total
- // size of all corresponding resources before any data-reducing recompression
- // is applied. These values are used to compute the data savings realized
- // by applying our compression techniques. Totals for the last
- // |kNumDaysInHistory| days are maintained.
DailyDataSavingUpdate total(
GetList(data_reduction_proxy::prefs::kDailyHttpOriginalContentLength),
GetList(data_reduction_proxy::prefs::kDailyHttpReceivedContentLength));
- total.UpdateForDataChange(days_since_last_update);
DailyDataSavingUpdate proxy_enabled(
GetList(data_reduction_proxy::prefs::
kDailyOriginalContentLengthWithDataReductionProxyEnabled),
GetList(data_reduction_proxy::prefs::
kDailyContentLengthWithDataReductionProxyEnabled));
- proxy_enabled.UpdateForDataChange(days_since_last_update);
DailyDataSavingUpdate via_proxy(
GetList(data_reduction_proxy::prefs::
- kDailyOriginalContentLengthViaDataReductionProxy),
+ kDailyOriginalContentLengthViaDataReductionProxy),
GetList(data_reduction_proxy::prefs::
- kDailyContentLengthViaDataReductionProxy));
- via_proxy.UpdateForDataChange(days_since_last_update);
+ kDailyContentLengthViaDataReductionProxy));
DailyContentLengthUpdate https(
GetList(data_reduction_proxy::prefs::
- kDailyContentLengthHttpsWithDataReductionProxyEnabled));
- https.UpdateForDataChange(days_since_last_update);
+ kDailyContentLengthHttpsWithDataReductionProxyEnabled));
DailyContentLengthUpdate short_bypass(
GetList(data_reduction_proxy::prefs::
- kDailyContentLengthShortBypassWithDataReductionProxyEnabled));
- short_bypass.UpdateForDataChange(days_since_last_update);
+ kDailyContentLengthShortBypassWithDataReductionProxyEnabled));
DailyContentLengthUpdate long_bypass(
GetList(data_reduction_proxy::prefs::
- kDailyContentLengthLongBypassWithDataReductionProxyEnabled));
- long_bypass.UpdateForDataChange(days_since_last_update);
+ kDailyContentLengthLongBypassWithDataReductionProxyEnabled));
DailyContentLengthUpdate unknown(
GetList(data_reduction_proxy::prefs::
- kDailyContentLengthUnknownWithDataReductionProxyEnabled));
+ kDailyContentLengthUnknownWithDataReductionProxyEnabled));
+
+ int days_since_last_update = (midnight - then_midnight).InDays();
+ if (days_since_last_update) {
+ // Record the last update time in microseconds in UTC.
+ SetInt64(data_reduction_proxy::prefs::kDailyHttpContentLengthLastUpdateDate,
+ midnight.ToInternalValue());
+
+ // A new day. Report the previous day's data if exists. We'll lose usage
+ // data if the last time Chrome was run was more than a day ago.
+ // Here, we prefer collecting less data but the collected data is
+ // associated with an accurate date.
+ if (days_since_last_update == 1) {
+ RecordDailyContentLengthHistograms(
+ total.GetOriginalListPrefValue(kNumDaysInHistory - 1),
+ total.GetReceivedListPrefValue(kNumDaysInHistory - 1),
+ proxy_enabled.GetOriginalListPrefValue(kNumDaysInHistory - 1),
+ proxy_enabled.GetReceivedListPrefValue(kNumDaysInHistory - 1),
+ via_proxy.GetOriginalListPrefValue(kNumDaysInHistory - 1),
+ via_proxy.GetReceivedListPrefValue(kNumDaysInHistory - 1),
+ https.GetListPrefValue(kNumDaysInHistory - 1),
+ short_bypass.GetListPrefValue(kNumDaysInHistory - 1),
+ long_bypass.GetListPrefValue(kNumDaysInHistory - 1),
+ unknown.GetListPrefValue(kNumDaysInHistory - 1));
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyHttpOriginalContentLengthApplication,
+ "Net.DailyOriginalContentLength_Application");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyHttpReceivedContentLengthApplication,
+ "Net.DailyReceivedContentLength_Application");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthVideo,
+ "Net.DailyOriginalContentLength_Video");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthVideo,
+ "Net.DailyContentLength_Video");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthUnknown,
+ "Net.DailyOriginalContentLength_UnknownMime");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthUnknown,
+ "Net.DailyContentLength_UnknownMime");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledApplication,
+ "Net.DailyOriginalContentLength_DataReductionProxyEnabled_"
+ "Application");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledApplication,
+ "Net.DailyContentLength_DataReductionProxyEnabled_Application");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledVideo,
+ "Net.DailyOriginalContentLength_DataReductionProxyEnabled_Video");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledVideo,
+ "Net.DailyContentLength_DataReductionProxyEnabled_Video");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledUnknown,
+ "Net.DailyOriginalContentLength_DataReductionProxyEnabled_"
+ "UnknownMime");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledUnknown,
+ "Net.DailyContentLength_DataReductionProxyEnabled_UnknownMime")
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyApplication,
+ "Net.DailyOriginalContentLength_ViaDataReductionProxy_Application");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyApplication,
+ "Net.DailyContentLength_ViaDataReductionProxy_Application");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyVideo,
+ "Net.DailyOriginalContentLength_ViaDataReductionProxy_Video");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyVideo,
+ "Net.DailyContentLength_ViaDataReductionProxy_Video");
+
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyUnknown,
+ "Net.DailyOriginalContentLength_ViaDataReductionProxy_UnknownMime");
+ RECORD_INT64PREF_TO_HISTOGRAM(
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyUnknown,
+ "Net.DailyContentLength_ViaDataReductionProxy_UnknownMime");
+ }
+
+ // The system may go backwards in time by up to a day for legitimate
+ // reasons, such as with changes to the time zone. In such cases, we
+ // keep adding to the current day which is why we check for
+ // |days_since_last_update != -1|.
+ // Note: we accept the fact that some reported data is shifted to
+ // the adjacent day if users travel back and forth across time zones.
+ if (days_since_last_update && (days_since_last_update != -1)) {
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyHttpOriginalContentLengthApplication,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyHttpReceivedContentLengthApplication,
+ 0);
+
+ SetInt64(
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthVideo, 0);
+ SetInt64(
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthVideo, 0);
+
+ SetInt64(
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthUnknown,
+ 0);
+ SetInt64(
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthUnknown,
+ 0);
+
+ SetInt64(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledApplication,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledApplication,
+ 0);
+
+ SetInt64(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledVideo,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledVideo,
+ 0);
+
+ SetInt64(
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledUnknown,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledUnknown,
+ 0);
+
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyApplication,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyApplication,
+ 0);
+
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyVideo,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyVideo,
+ 0);
+
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyUnknown,
+ 0);
+ SetInt64(data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyUnknown,
+ 0);
+ }
+ }
+ total.UpdateForDataChange(days_since_last_update);
+ proxy_enabled.UpdateForDataChange(days_since_last_update);
+ via_proxy.UpdateForDataChange(days_since_last_update);
+ https.UpdateForDataChange(days_since_last_update);
+ short_bypass.UpdateForDataChange(days_since_last_update);
+ long_bypass.UpdateForDataChange(days_since_last_update);
unknown.UpdateForDataChange(days_since_last_update);
total.Add(original_size, data_used);
@@ -840,32 +990,80 @@ void DataReductionProxyCompressionStats::RecordRequestSizePrefs(
}
}
- if (days_since_last_update) {
- // Record the last update time in microseconds in UTC.
- SetInt64(
- data_reduction_proxy::prefs::kDailyHttpContentLengthLastUpdateDate,
- midnight.ToInternalValue());
+ bool via_data_reduction_proxy = request_type == VIA_DATA_REDUCTION_PROXY;
+ bool is_application = net::MatchesMimeType("application/*", mime_type);
+ bool is_video = net::MatchesMimeType("video/*", mime_type);
+ bool is_mime_type_empty = mime_type.empty();
+ if (is_application) {
+ IncrementDailyUmaPrefs(
+ original_size, data_used,
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthApplication,
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthApplication,
+ with_data_reduction_proxy_enabled,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledApplication,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledApplication,
+ via_data_reduction_proxy,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyApplication,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyApplication);
+ } else if (is_video) {
+ IncrementDailyUmaPrefs(
+ original_size, data_used,
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthVideo,
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthVideo,
+ with_data_reduction_proxy_enabled,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledVideo,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledVideo,
+ via_data_reduction_proxy,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyVideo,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyVideo);
+ } else if (is_mime_type_empty) {
+ IncrementDailyUmaPrefs(
+ original_size, data_used,
+ data_reduction_proxy::prefs::kDailyHttpOriginalContentLengthUnknown,
+ data_reduction_proxy::prefs::kDailyHttpReceivedContentLengthUnknown,
+ with_data_reduction_proxy_enabled,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthWithDataReductionProxyEnabledUnknown,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthWithDataReductionProxyEnabledUnknown,
+ via_data_reduction_proxy,
+ data_reduction_proxy::prefs::
+ kDailyOriginalContentLengthViaDataReductionProxyUnknown,
+ data_reduction_proxy::prefs::
+ kDailyContentLengthViaDataReductionProxyUnknown);
+ }
+}
- // A new day. Report the previous day's data if exists. We'll lose usage
- // data if the last time Chrome was run was more than a day ago.
- // Here, we prefer collecting less data but the collected data is
- // associated with an accurate date.
- if (days_since_last_update == 1) {
- RecordUserVisibleDataSavings();
- // The previous day's data point is the second one from the tail.
- // Therefore (kNumDaysInHistory - 2) below.
- RecordDailyContentLengthHistograms(
- total.GetOriginalListPrefValue(kNumDaysInHistory - 2),
- total.GetReceivedListPrefValue(kNumDaysInHistory - 2),
- proxy_enabled.GetOriginalListPrefValue(kNumDaysInHistory - 2),
- proxy_enabled.GetReceivedListPrefValue(kNumDaysInHistory - 2),
- via_proxy.GetOriginalListPrefValue(kNumDaysInHistory - 2),
- via_proxy.GetReceivedListPrefValue(kNumDaysInHistory - 2),
- https.GetListPrefValue(kNumDaysInHistory - 2),
- short_bypass.GetListPrefValue(kNumDaysInHistory - 2),
- long_bypass.GetListPrefValue(kNumDaysInHistory - 2),
- unknown.GetListPrefValue(kNumDaysInHistory - 2), mime_type);
- }
+void DataReductionProxyCompressionStats::IncrementDailyUmaPrefs(
+ int64_t original_size,
+ int64_t received_size,
+ const char* original_size_pref,
+ const char* received_size_pref,
+ bool data_reduction_proxy_enabled,
+ const char* original_size_with_proxy_enabled_pref,
+ const char* recevied_size_with_proxy_enabled_pref,
+ bool via_data_reduction_proxy,
+ const char* original_size_via_proxy_pref,
+ const char* received_size_via_proxy_pref) {
+ IncrementInt64Pref(original_size_pref, original_size);
+ IncrementInt64Pref(received_size_pref, received_size);
+
+ if (data_reduction_proxy_enabled) {
+ IncrementInt64Pref(original_size_with_proxy_enabled_pref, original_size);
+ IncrementInt64Pref(recevied_size_with_proxy_enabled_pref, received_size);
+ }
+
+ if (via_data_reduction_proxy) {
+ IncrementInt64Pref(original_size_via_proxy_pref, original_size);
+ IncrementInt64Pref(received_size_via_proxy_pref, received_size);
}
}

Powered by Google App Engine
This is Rietveld 408576698