Index: components/data_use_measurement/core/data_use_user_data.cc |
diff --git a/components/data_use_measurement/core/data_use_user_data.cc b/components/data_use_measurement/core/data_use_user_data.cc |
index 50578ffc36effc41417471662e2d1b84b6cdf783..b00348da76d048698d93a970dd7eb5cf08d2b571 100644 |
--- a/components/data_use_measurement/core/data_use_user_data.cc |
+++ b/components/data_use_measurement/core/data_use_user_data.cc |
@@ -4,12 +4,32 @@ |
#include "components/data_use_measurement/core/data_use_user_data.h" |
+#if defined(OS_ANDROID) |
+#include "base/android/application_status_listener.h" |
+#endif |
+ |
#include "net/url_request/url_fetcher.h" |
namespace data_use_measurement { |
-DataUseUserData::DataUseUserData(ServiceName service_name) |
- : service_name_(service_name) {} |
+namespace { |
+ |
+DataUseUserData::AppState GetCurrentAppState() { |
+#if defined(OS_ANDROID) |
+ return base::android::ApplicationStatusListener::GetState() == |
+ base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES |
+ ? DataUseUserData::FOREGROUND |
+ : DataUseUserData::BACKGROUND; |
+#else |
+ // If the OS is not Android, all the requests are considered Foreground. |
+ return DataUseUserData::FOREGROUND; |
+#endif |
+} |
+ |
+} // namespace |
+ |
+DataUseUserData::DataUseUserData(ServiceName service_name, AppState app_state) |
+ : service_name_(service_name), app_state_(app_state) {} |
DataUseUserData::~DataUseUserData() {} |
@@ -20,7 +40,7 @@ const void* const DataUseUserData::kUserDataKey = |
// static |
base::SupportsUserData::Data* DataUseUserData::Create( |
ServiceName service_name) { |
- return new DataUseUserData(service_name); |
+ return new DataUseUserData(service_name, GetCurrentAppState()); |
} |
// static |