Chromium Code Reviews| 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 76584900fd8017e1f10041962c8ca5278535fe0d..a2521bedb426401dc4283849b787f95908c4561f 100644 |
| --- a/chrome/browser/android/data_usage/external_data_use_observer.h |
| +++ b/chrome/browser/android/data_usage/external_data_use_observer.h |
| @@ -21,6 +21,10 @@ |
| #include "components/data_usage/core/data_use_aggregator.h" |
| #include "net/base/network_change_notifier.h" |
| +#if defined(OS_ANDROID) |
| +#include "base/android/application_status_listener.h" |
| +#endif |
| + |
| namespace base { |
| class SingleThreadTaskRunner; |
| } |
| @@ -77,6 +81,12 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
| // successfully submitted to the external data use observer by Java. |
| void OnReportDataUseDone(bool success); |
| +#if defined(OS_ANDROID) |
| + // Called whenever the application transitions from foreground to background |
| + // and vice versa. |
| + void OnApplicationStateChange(base::android::ApplicationState new_state); |
|
tbansal1
2015/12/21 21:03:24
Does this method need to be public?
Raj
2015/12/29 23:17:35
Done.
|
| +#endif |
| + |
| // Called by DataUseMatcher. |should_register| is true if |this| should |
| // register as a data use observer. |
| void ShouldRegisterAsDataUseObserver(bool should_register); |
| @@ -190,8 +200,10 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
| // |buffered_data_reports_|. Since an unordered map is used to buffer the |
| // reports, the order of reports may change. The reports are buffered in an |
| // arbitrary order and there are no guarantees that the next report to be |
| - // submitted is the oldest one buffered. |
| - void SubmitBufferedDataUseReport(); |
| + // submitted is the oldest one buffered. |immediate| indicates whether to |
| + // submit the report immediately or to wait until |data_use_report_min_bytes_| |
| + // unreported bytes are buffered. |
| + void SubmitBufferedDataUseReport(bool immediate); |
| // Aggregator that sends data use observations to |this|. |
| data_usage::DataUseAggregator* data_use_aggregator_; |
| @@ -242,6 +254,12 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
| // duration, it is considered as timed out. |
| const base::TimeDelta data_report_submit_timeout_; |
| +#if defined(OS_ANDROID) |
| + // ApplicationStatusListener used to listen when Chromium gets backgrounded |
| + // and submit buffered data use reports. |
| + scoped_ptr<base::android::ApplicationStatusListener> app_state_listener_; |
| +#endif |
| + |
| // True if |this| is currently registered as a data use observer. |
| bool registered_as_data_use_observer_; |