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

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

Issue 1544633002: Submit buffered data use reports when Chromium is backgrounded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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.cc
diff --git a/chrome/browser/android/data_usage/external_data_use_observer.cc b/chrome/browser/android/data_usage/external_data_use_observer.cc
index 2146b7e1fd0d19c155245a4f8d1288a37a38b6de..cfc7de18312ca3f07fd702dd5eab0e7a99447547 100644
--- a/chrome/browser/android/data_usage/external_data_use_observer.cc
+++ b/chrome/browser/android/data_usage/external_data_use_observer.cc
@@ -146,6 +146,11 @@ ExternalDataUseObserver::ExternalDataUseObserver(
data_use_report_min_bytes_(GetMinBytes()),
data_report_submit_timeout_(
base::TimeDelta::FromMilliseconds(GetDataReportSubmitTimeoutMsec())),
+#if defined(OS_ANDROID)
+ app_state_listener_(new base::android::ApplicationStatusListener(
+ base::Bind(&ExternalDataUseObserver::OnApplicationStateChange,
+ base::Unretained(this)))),
+#endif
registered_as_data_use_observer_(false),
weak_factory_(this) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
@@ -204,9 +209,18 @@ void ExternalDataUseObserver::OnReportDataUseDone(bool success) {
last_data_report_submitted_ticks_ = base::TimeTicks();
pending_report_bytes_ = 0;
- SubmitBufferedDataUseReport();
+ SubmitBufferedDataUseReport(false);
}
+#if defined(OS_ANDROID)
+void ExternalDataUseObserver::OnApplicationStateChange(
+ base::android::ApplicationState new_state) {
tbansal1 2015/12/21 21:03:24 DCHECK(thread_checker...);
Raj 2015/12/29 23:17:35 Done.
+ if (new_state == base::android::APPLICATION_STATE_HAS_PAUSED_ACTIVITIES) {
tbansal1 2015/12/21 21:03:24 braces not required.
Raj 2015/12/29 23:17:35 Done.
+ SubmitBufferedDataUseReport(true);
+ }
+}
+#endif
+
void ExternalDataUseObserver::OnDataUse(const data_usage::DataUse& data_use) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(registered_as_data_use_observer_);
@@ -270,7 +284,7 @@ void ExternalDataUseObserver::DataUseLabelApplied(
return;
BufferDataUseReport(data_use, *label, start_time, end_time);
- SubmitBufferedDataUseReport();
+ SubmitBufferedDataUseReport(false);
}
void ExternalDataUseObserver::BufferDataUseReport(
@@ -320,7 +334,7 @@ void ExternalDataUseObserver::BufferDataUseReport(
DCHECK_LE(buffered_data_reports_.size(), kMaxBufferSize);
}
-void ExternalDataUseObserver::SubmitBufferedDataUseReport() {
+void ExternalDataUseObserver::SubmitBufferedDataUseReport(bool immediate) {
DCHECK(thread_checker_.CalledOnValidThread());
const base::TimeTicks ticks_now = base::TimeTicks::Now();
@@ -336,7 +350,7 @@ void ExternalDataUseObserver::SubmitBufferedDataUseReport() {
if (buffered_data_reports_.empty())
return;
- if (total_bytes_buffered_ < data_use_report_min_bytes_)
+ if (!immediate && total_bytes_buffered_ < data_use_report_min_bytes_)
return;
if (!last_data_report_submitted_ticks_.is_null()) {

Powered by Google App Engine
This is Rietveld 408576698