| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h
|
| index 199029512d126c3750bdcf934f5c97024cbc8fcc..297f810093c9efc43c986125f539b30aadc65c9b 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h
|
| @@ -13,6 +13,7 @@
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/threading/thread_checker.h"
|
| #include "base/time/time.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
|
|
|
| class PrefChangeRegistrar;
|
| @@ -44,41 +45,49 @@ class DataReductionProxyCompressionStats {
|
| const base::TimeDelta& delay);
|
| ~DataReductionProxyCompressionStats();
|
|
|
| - // Loads all data_reduction_proxy::prefs into the |pref_map_| and
|
| - // |list_pref_map_|.
|
| - void Init();
|
| -
|
| - void OnUpdateContentLengths();
|
| -
|
| - // Gets the int64 pref at |pref_path| from the |DataReductionProxyPrefMap|.
|
| - int64 GetInt64(const char* pref_path);
|
| -
|
| - // Updates the pref value in the |DataReductionProxyPrefMap| map.
|
| - // The pref is later written to |pref service_|.
|
| - void SetInt64(const char* pref_path, int64 pref_value);
|
| -
|
| - // Gets the pref list at |pref_path| from the |DataReductionProxyPrefMap|.
|
| - base::ListValue* GetList(const char* pref_path);
|
| -
|
| - // Writes the prefs stored in |DataReductionProxyPrefMap| and
|
| - // |DataReductionProxyListPrefMap| to |pref_service|.
|
| - void WritePrefs();
|
| + // Records daily data savings statistics to prefs and reports data savings
|
| + // UMA.
|
| + void UpdateContentLengths(int received_content_length,
|
| + int original_content_length,
|
| + bool data_reduction_proxy_enabled,
|
| + DataReductionProxyRequestType request_type);
|
|
|
| // Creates a |Value| summary of the persistent state of the network session.
|
| // The caller is responsible for deleting the returned value.
|
| // Must be called on the UI thread.
|
| base::Value* HistoricNetworkStatsInfoToValue();
|
|
|
| + // Returns the time in milliseconds since epoch that the last update was made
|
| + // to the daily original and received content lengths.
|
| + int64 GetLastUpdateTime();
|
| +
|
| + // Resets daily content length statistics.
|
| + void ResetStatistics();
|
| +
|
| // Clears all data saving statistics.
|
| void ClearDataSavingStatistics();
|
|
|
| - base::WeakPtr<DataReductionProxyCompressionStats> GetWeakPtr();
|
| + // Returns a list of all the daily content lengths.
|
| + ContentLengthList GetDailyContentLengths(const char* pref_name);
|
| +
|
| + // Returns aggregate received and original content lengths over the specified
|
| + // number of days, as well as the time these stats were last updated.
|
| + void GetContentLengths(unsigned int days,
|
| + int64* original_content_length,
|
| + int64* received_content_length,
|
| + int64* last_update_time);
|
|
|
| private:
|
| + friend class DataReductionProxyCompressionStatsTest;
|
| +
|
| typedef std::map<const char*, int64> DataReductionProxyPrefMap;
|
| typedef base::ScopedPtrHashMap<const char*, base::ListValue>
|
| DataReductionProxyListPrefMap;
|
|
|
| + // Loads all data_reduction_proxy::prefs into the |pref_map_| and
|
| + // |list_pref_map_|.
|
| + void Init();
|
| +
|
| // Gets the value of |pref| from the pref service and adds it to the
|
| // |pref_map|.
|
| void InitInt64Pref(const char* pref);
|
| @@ -87,6 +96,22 @@ class DataReductionProxyCompressionStats {
|
| // |list_pref_map|.
|
| void InitListPref(const char* pref);
|
|
|
| + void OnUpdateContentLengths();
|
| +
|
| + // Gets the int64 pref at |pref_path| from the |DataReductionProxyPrefMap|.
|
| + int64 GetInt64(const char* pref_path);
|
| +
|
| + // Updates the pref value in the |DataReductionProxyPrefMap| map.
|
| + // The pref is later written to |pref service_|.
|
| + void SetInt64(const char* pref_path, int64 pref_value);
|
| +
|
| + // Gets the pref list at |pref_path| from the |DataReductionProxyPrefMap|.
|
| + base::ListValue* GetList(const char* pref_path);
|
| +
|
| + // Writes the prefs stored in |DataReductionProxyPrefMap| and
|
| + // |DataReductionProxyListPrefMap| to |pref_service|.
|
| + void WritePrefs();
|
| +
|
| // Writes the stored prefs to |pref_service| and then posts another a delayed
|
| // task to write prefs again in |kMinutesBetweenWrites|.
|
| void DelayedWritePrefs();
|
| @@ -100,6 +125,14 @@ class DataReductionProxyCompressionStats {
|
| // index.
|
| int64 GetListPrefInt64Value(const base::ListValue& list_update, size_t index);
|
|
|
| + // Records content length updates to prefs.
|
| + void RecordContentLengthPrefs(
|
| + int received_content_length,
|
| + int original_content_length,
|
| + bool with_data_reduction_proxy_enabled,
|
| + DataReductionProxyRequestType request_type,
|
| + base::Time now);
|
| +
|
| PrefService* pref_service_;
|
| scoped_refptr<base::SequencedTaskRunner> task_runner_;
|
| const base::TimeDelta delay_;
|
|
|