diff options
author | Rohit Kundaji <kundaji@google.com> | 2015-12-03 15:53:04 -0800 |
---|---|---|
committer | Rohit Kundaji <kundaji@google.com> | 2015-12-03 23:54:52 +0000 |
commit | 9bef822950899e94f87b603f68835db938f39c51 (patch) | |
tree | 2f4f5ee56accef7a0f872070bfa35b363bd13acf | |
parent | 333bd7c145e9ebf83a05cdc9b90316e9278b9b3e (diff) | |
download | chromium_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}
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(); |