| Index: components/ukm/ukm_service.cc
|
| diff --git a/components/ukm/ukm_service.cc b/components/ukm/ukm_service.cc
|
| index 06c3dbb5f59a60870f12b910eca9dd3289dc12db..a1ce8de8a69d816e5dcd225a7da68c7f4b6ba05b 100644
|
| --- a/components/ukm/ukm_service.cc
|
| +++ b/components/ukm/ukm_service.cc
|
| @@ -198,6 +198,36 @@ void UkmService::DisableReporting() {
|
| Flush();
|
| }
|
|
|
| +#if defined(OS_ANDROID) || defined(OS_IOS)
|
| +void UkmService::OnAppEnterForeground() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + DVLOG(1) << "UkmService::OnAppEnterForeground";
|
| +
|
| + // If initialize_started_ is false, UKM has not yet been started, so bail. The
|
| + // scheduler will instead be started via EnableReporting().
|
| + if (!initialize_started_)
|
| + return;
|
| +
|
| + scheduler_->Start();
|
| +}
|
| +
|
| +void UkmService::OnAppEnterBackground() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + DVLOG(1) << "UkmService::OnAppEnterBackground";
|
| +
|
| + if (!initialize_started_)
|
| + return;
|
| +
|
| + scheduler_->Stop();
|
| +
|
| + // Give providers a chance to persist ukm data as part of being backgrounded.
|
| + for (auto& provider : metrics_providers_)
|
| + provider->OnAppEnterBackground();
|
| +
|
| + Flush();
|
| +}
|
| +#endif
|
| +
|
| void UkmService::Flush() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (initialize_complete_)
|
|
|