summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRohit Kundaji <kundaji@google.com>2015-12-03 15:53:04 -0800
committerRohit Kundaji <kundaji@google.com>2015-12-03 23:54:52 +0000
commit9bef822950899e94f87b603f68835db938f39c51 (patch)
tree2f4f5ee56accef7a0f872070bfa35b363bd13acf
parent333bd7c145e9ebf83a05cdc9b90316e9278b9b3e (diff)
downloadchromium_src-9bef822950899e94f87b603f68835db938f39c51.zip
chromium_src-9bef822950899e94f87b603f68835db938f39c51.tar.gz
chromium_src-9bef822950899e94f87b603f68835db938f39c51.tar.bz2
Reset data usage load status when pref is turned off.
Reset current data usage load status when pref kDataUsageReportingEnabled is cleared. Without this cl, once data usage recording has been switched on, it will continue to be recorded even after the pref is switched off. BUG=563723 Review URL: https://codereview.chromium.org/1484993002 Cr-Commit-Position: refs/heads/master@{#362556} (cherry picked from commit e6971d83354571d7b5c641e79480440ac3d5ddf5) Review URL: https://codereview.chromium.org/1500863002 . Cr-Commit-Position: refs/branch-heads/2564@{#226} Cr-Branched-From: 1283eca15bd9f772387f75241576cde7bdec7f54-refs/heads/master@{#359700}
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.cc3
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc32
2 files changed, 35 insertions, 0 deletions
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 14f9ffd..c9ff217 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
@@ -1126,6 +1126,8 @@ void DataReductionProxyCompressionStats::RecordDataUsage(
if (current_data_usage_load_status_ != LOADED)
return;
+ DCHECK(data_usage_reporting_enabled_.GetValue());
+
if (!DataUsageStore::AreInSameInterval(data_usage_map_last_updated_, time)) {
PersistDataUsage();
data_usage_map_.clear();
@@ -1221,6 +1223,7 @@ void DataReductionProxyCompressionStats::OnDataUsageReportingPrefChanged() {
}
} else {
DeleteHistoricalDataUsage();
+ current_data_usage_load_status_ = NOT_LOADED;
}
}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
index d990aa1..a1e25a4 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats_unittest.cc
@@ -428,6 +428,10 @@ class DataReductionProxyCompressionStatsTest : public testing::Test {
pref_service()->SetBoolean(prefs::kDataUsageReportingEnabled, true);
}
+ void DisableDataUsageReporting() {
+ pref_service()->SetBoolean(prefs::kDataUsageReportingEnabled, false);
+ }
+
DataReductionProxyCompressionStats* compression_stats() {
return compression_stats_.get();
}
@@ -1083,6 +1087,34 @@ TEST_F(DataReductionProxyCompressionStatsTest, RecordDataUsageSingleSite) {
base::RunLoop().RunUntilIdle();
}
+TEST_F(DataReductionProxyCompressionStatsTest, DisableDataUsageRecording) {
+ EnableDataUsageReporting();
+ base::RunLoop().RunUntilIdle();
+
+ base::Time now = base::Time::Now();
+ RecordDataUsage("https://www.foo.com", 1000, 1250, now);
+
+ DisableDataUsageReporting();
+ base::RunLoop().RunUntilIdle();
+
+ // Data usage on disk must be deleted.
+ auto expected_data_usage1 =
+ make_scoped_ptr(new std::vector<data_reduction_proxy::DataUsageBucket>(
+ kNumExpectedBuckets));
+ DataUsageLoadVerifier verifier1(expected_data_usage1.Pass());
+ LoadHistoricalDataUsage(base::Bind(&DataUsageLoadVerifier::OnLoadDataUsage,
+ base::Unretained(&verifier1)));
+
+ // Public API must return an empty array.
+ auto expected_data_usage2 =
+ make_scoped_ptr(new std::vector<data_reduction_proxy::DataUsageBucket>());
+ DataUsageLoadVerifier verifier2(expected_data_usage2.Pass());
+ GetHistoricalDataUsage(base::Bind(&DataUsageLoadVerifier::OnLoadDataUsage,
+ base::Unretained(&verifier2)),
+ now);
+ base::RunLoop().RunUntilIdle();
+}
+
TEST_F(DataReductionProxyCompressionStatsTest, RecordDataUsageMultipleSites) {
EnableDataUsageReporting();
base::RunLoop().RunUntilIdle();