Chromium Code Reviews| Index: chrome/browser/metrics/variations/variations_request_scheduler_mobile.cc |
| diff --git a/chrome/browser/metrics/variations/variations_request_scheduler_mobile.cc b/chrome/browser/metrics/variations/variations_request_scheduler_mobile.cc |
| index 77148617bfcb9747711027767e5da2ae427bdca2..fcb9b2e0f5c6f71a17255be3763446e7d0fefb9b 100644 |
| --- a/chrome/browser/metrics/variations/variations_request_scheduler_mobile.cc |
| +++ b/chrome/browser/metrics/variations/variations_request_scheduler_mobile.cc |
| @@ -11,6 +11,9 @@ namespace chrome_variations { |
| namespace { |
| +// Time before attempting a seed fetch after a ScheduleFetch(), in seconds. |
| +const int kScheduleFetchDelaySeconds = 5; |
| + |
| // Time between seed fetches, in hours. |
| const int kSeedFetchPeriodHours = 5; |
| @@ -34,6 +37,7 @@ void VariationsRequestSchedulerMobile::Start() { |
| local_state_->GetInt64(prefs::kVariationsLastFetchTime)); |
| if (base::Time::Now() > |
| last_fetch_time + base::TimeDelta::FromHours(kSeedFetchPeriodHours)) { |
| + last_request_time_ = base::Time::Now(); |
| task().Run(); |
| } |
| } |
| @@ -41,6 +45,25 @@ void VariationsRequestSchedulerMobile::Start() { |
| void VariationsRequestSchedulerMobile::Reset() { |
| } |
| +void VariationsRequestSchedulerMobile::OnAppEnterForeground() { |
| + // Verify we haven't just attempted a fetch (which has not completed). This |
| + // is mainly used to verify we don't trigger a second fetch for the |
| + // OnAppEnterForeground right after startup. |
| + if (base::Time::Now() < |
| + last_request_time_ + base::TimeDelta::FromHours(kSeedFetchPeriodHours)) { |
|
Alexei Svitkine (slow)
2014/02/14 19:11:51
Nit: Align.
rkaplow
2014/02/14 19:18:04
Done.
|
| + return; |
| + } |
| + |
| + // Since Start() launches a one-off execution, we can reuse it here. Also |
| + // note that since Start() verifies that the seed needs to be refreshed, we |
| + // do not verify here. |
| + schedule_fetch_timer_.Start( |
| + FROM_HERE, |
| + base::TimeDelta::FromSeconds(kScheduleFetchDelaySeconds), |
| + this, |
| + &VariationsRequestSchedulerMobile::Start); |
| +} |
| + |
| // static |
| VariationsRequestScheduler* VariationsRequestScheduler::Create( |
| const base::Closure& task, |