Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4025)

Unified Diff: chrome/browser/android/data_usage/external_data_use_observer.h

Issue 1412813007: ExternalDataUseObserver JNI integration (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed sclittle comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..57f82c496c6e98d56027169164d775d5d676bcb9 100644
--- a/chrome/browser/android/data_usage/external_data_use_observer.h
+++ b/chrome/browser/android/data_usage/external_data_use_observer.h
@@ -9,11 +9,11 @@
#include <stdint.h>
#include <string>
-#include <unordered_map>
#include <vector>
#include "base/android/jni_array.h"
#include "base/android/scoped_java_ref.h"
+#include "base/containers/hash_tables.h"
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/ref_counted.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;
+
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 {
@@ -182,9 +189,8 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer {
}
};
- typedef std::unordered_map<DataUseReportKey,
- DataUseReport,
- DataUseReportKeyHash> DataUseReports;
+ typedef base::hash_map<DataUseReportKey, DataUseReport, DataUseReportKeyHash>
+ DataUseReports;
// Stores the matching rules.
class MatchingRule {
@@ -312,6 +318,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.
+ const base::TimeDelta fetch_matching_rules_duration_;
+
+ // Minimum number of bytes that should be buffered before a data use report is
+ // submitted.
+ const 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

Powered by Google App Engine
This is Rietveld 408576698