Index: chrome/browser/android/data_usage/external_data_use_observer.h |
diff --git a/chrome/browser/android/data_usage/external_data_use_observer.h b/chrome/browser/android/data_usage/external_data_use_observer.h |
index 1db5416a40cdb7b20bd6ed14c9f2933d43ea67cc..f0fdb6cbfbceac79991ad2a2089869238bf28987 100644 |
--- a/chrome/browser/android/data_usage/external_data_use_observer.h |
+++ b/chrome/browser/android/data_usage/external_data_use_observer.h |
@@ -80,6 +80,9 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// called on UI thread. |
void OnReportDataUseDone(JNIEnv* env, jobject obj, bool success); |
+ // Returns the external data use observer field trial name. |
+ const std::string GetExternalDataUseObserverFieldTrialName() const; |
sclittle
2015/11/06 23:42:50
Make this a static constant.
tbansal1
2015/11/07 01:32:43
This function would be used by Raj to control othe
sclittle
2015/11/07 02:05:32
Could it just be a publicly visible static constan
tbansal1
2015/11/07 02:33:02
Done.
|
+ |
private: |
FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, SingleRegex); |
FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, TwoRegex); |
@@ -93,6 +96,10 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
TimestampsMergedCorrectly); |
FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, HashFunction); |
FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferSize); |
+ FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, |
+ PeriodicFetchMatchingRules); |
+ FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferDataUseReports); |
+ FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, Variations); |
// DataUseReportKey is a unique identifier for a data use report. |
struct DataUseReportKey { |
@@ -214,6 +221,9 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// size |kMaxBufferSize|, then the oldest entry will be removed. |
static const size_t kMaxBufferSize = 100; |
+ // Populates various parameters from the values specified in the field trial. |
+ void PopulateFieldTrialParams(); |
sclittle
2015/11/06 23:42:50
Could this just be a few anonymous functions in th
tbansal1
2015/11/07 01:32:43
Done.
|
+ |
// Creates Java object. Must be called on the UI thread. |
void CreateJavaObjectOnUIThread(); |
@@ -312,6 +322,20 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
// Time when the data use reports were last received from DataUseAggregator. |
base::Time previous_report_time_; |
+ // Time when the matching rules were last fetched. |
+ base::TimeTicks last_matching_rules_fetch_time_; |
+ |
+ // Total number of bytes transmitted or received across all the buffered |
+ // reports. |
+ int64_t total_bytes_buffered_; |
+ |
+ // Duration after which matching rules are periodically fetched. |
+ base::TimeDelta fetch_matching_rules_duration_; |
+ |
+ // Minimum number of bytes that should be buffered before a data use report is |
+ // submitted. |
+ int64_t data_use_report_min_bytes_; |
+ |
base::ThreadChecker thread_checker_; |
// |io_weak_factory_| and |ui_weak_factory_| are used for posting tasks on the |