| 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 f272fd999af26c7f841be8920a2fd3135d417fb7..8514815997ff4b4457a5e6bd9b603449d757239b 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
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h"
|
|
|
| +#include <string>
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| @@ -20,7 +21,10 @@
|
| #include "base/time/time.h"
|
| #include "base/values.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_store.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_usage_storage_helper.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
|
| +#include "components/data_reduction_proxy/proto/store.pb.h"
|
|
|
| namespace data_reduction_proxy {
|
|
|
| @@ -302,10 +306,14 @@ class DailyDataSavingUpdate {
|
|
|
| DataReductionProxyCompressionStats::DataReductionProxyCompressionStats(
|
| PrefService* prefs,
|
| - scoped_refptr<base::SequencedTaskRunner> task_runner,
|
| - const base::TimeDelta& delay)
|
| + scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
|
| + scoped_refptr<base::SequencedTaskRunner> db_task_runner,
|
| + scoped_refptr<DataReductionProxyStore> store,
|
| + const base::TimeDelta delay)
|
| : pref_service_(prefs),
|
| - task_runner_(task_runner),
|
| + ui_task_runner_(ui_task_runner),
|
| + db_task_runner_(db_task_runner),
|
| + data_usage_store_(new DataUsageStorageHelper(store)),
|
| delay_(delay),
|
| delayed_task_posted_(false),
|
| pref_change_registrar_(new PrefChangeRegistrar()),
|
| @@ -318,8 +326,8 @@ DataReductionProxyCompressionStats::DataReductionProxyCompressionStats(
|
| DataReductionProxyCompressionStats::~DataReductionProxyCompressionStats() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| WritePrefs();
|
| + db_task_runner_->DeleteSoon(FROM_HERE, data_usage_store_.release());
|
| pref_change_registrar_->RemoveAll();
|
| - weak_factory_.InvalidateWeakPtrs();
|
| }
|
|
|
| void DataReductionProxyCompressionStats::Init() {
|
| @@ -383,6 +391,8 @@ void DataReductionProxyCompressionStats::UpdateContentLengths(
|
| SetInt64(data_reduction_proxy::prefs::kHttpOriginalContentLength,
|
| total_original);
|
|
|
| + // TODO(kundaji): Collect data usage metrics broken down by site and store
|
| + // in |data_usage_store_|.
|
| RecordContentLengthPrefs(
|
| received_content_length,
|
| original_content_length,
|
| @@ -559,10 +569,9 @@ void DataReductionProxyCompressionStats::DelayedWritePrefs() {
|
| if (delayed_task_posted_)
|
| return;
|
|
|
| - task_runner_->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&DataReductionProxyCompressionStats::WritePrefs,
|
| - weak_factory_.GetWeakPtr()),
|
| + ui_task_runner_->PostDelayedTask(
|
| + FROM_HERE, base::Bind(&DataReductionProxyCompressionStats::WritePrefs,
|
| + weak_factory_.GetWeakPtr()),
|
| delay_);
|
|
|
| delayed_task_posted_ = true;
|
|
|