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

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

Issue 2791563002: Create feature and enable data collection for Data Saver site breakdown (Closed)
Patch Set: sclittle comments Created 3 years, 8 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 207c98fa963184474463a62a3b1a4e544a6d0f6a..651d1778bdd4c84a604eff9fd8ed1f3f9beba53e 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
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/command_line.h"
+#include "base/feature_list.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
@@ -20,6 +21,7 @@
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h"
#include "components/data_reduction_proxy/core/browser/data_usage_store.h"
#include "components/data_reduction_proxy/core/browser/data_use_group.h"
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
#include "components/data_reduction_proxy/proto/data_store.pb.h"
@@ -367,6 +369,14 @@ void DataReductionProxyCompressionStats::Init() {
base::Bind(
&DataReductionProxyCompressionStats::OnDataUsageReportingPrefChanged,
weak_factory_.GetWeakPtr()));
+
+ if (!base::FeatureList::IsEnabled(features::kDataReductionSiteBreakdown)) {
+ // If the user is moved out of the experiment make sure that data usage
+ // reporting is not enabled and the map is cleared.
+ SetDataUsageReportingEnabled(false);
+ DeleteHistoricalDataUsage();
+ }
+
if (data_usage_reporting_enabled_.GetValue()) {
current_data_usage_load_status_ = LOADING;
service_->LoadCurrentDataUsageBucket(base::Bind(
@@ -681,6 +691,15 @@ void DataReductionProxyCompressionStats::OnCurrentDataUsageLoaded(
current_data_usage_load_status_ = LOADED;
}
+void DataReductionProxyCompressionStats::SetDataUsageReportingEnabled(
+ bool enabled) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ if (data_usage_reporting_enabled_.GetValue() != enabled) {
+ data_usage_reporting_enabled_.SetValue(enabled);
+ OnDataUsageReportingPrefChanged();
+ }
+}
+
void DataReductionProxyCompressionStats::ClearDataSavingStatistics() {
DeleteHistoricalDataUsage();
@@ -1195,6 +1214,7 @@ void DataReductionProxyCompressionStats::DeleteHistoricalDataUsage() {
void DataReductionProxyCompressionStats::GetHistoricalDataUsageImpl(
const HistoricalDataUsageCallback& get_data_usage_callback,
const base::Time& now) {
+#if !defined(OS_ANDROID)
if (current_data_usage_load_status_ != LOADED) {
// If current data usage has not yet loaded, we return an empty array. The
// extension can retry after a slight delay.
@@ -1204,10 +1224,13 @@ void DataReductionProxyCompressionStats::GetHistoricalDataUsageImpl(
base::MakeUnique<std::vector<DataUsageBucket>>());
return;
}
+#endif
- PersistDataUsage();
+ if (current_data_usage_load_status_ == LOADED)
+ PersistDataUsage();
- if (!DataUsageStore::AreInSameInterval(data_usage_map_last_updated_, now)) {
+ if (!data_usage_map_last_updated_.is_null() &&
+ !DataUsageStore::AreInSameInterval(data_usage_map_last_updated_, now)) {
data_usage_map_.clear();
data_usage_map_last_updated_ = base::Time();
@@ -1229,7 +1252,19 @@ void DataReductionProxyCompressionStats::OnDataUsageReportingPrefChanged() {
weak_factory_.GetWeakPtr()));
}
} else {
+// Don't delete the historical data on Android, but clear the map.
+#if defined(OS_ANDROID)
+ DCHECK(current_data_usage_load_status_ != LOADING);
+
+ if (current_data_usage_load_status_ == LOADED)
+ PersistDataUsage();
+
+ data_usage_map_.clear();
+ data_usage_map_last_updated_ = base::Time();
+ data_usage_map_is_dirty_ = false;
+#else
DeleteHistoricalDataUsage();
+#endif
current_data_usage_load_status_ = NOT_LOADED;
}
}

Powered by Google App Engine
This is Rietveld 408576698