Index: chrome/browser/metrics/variations/variations_request_scheduler.cc |
diff --git a/chrome/browser/metrics/variations/variations_request_scheduler.cc b/chrome/browser/metrics/variations/variations_request_scheduler.cc |
index 8f62c350f3963fcdc7d23dbf3f7a67c40b15fe50..932bf6664620bf4eeffd8455dcd35541afb20da2 100644 |
--- a/chrome/browser/metrics/variations/variations_request_scheduler.cc |
+++ b/chrome/browser/metrics/variations/variations_request_scheduler.cc |
@@ -4,8 +4,29 @@ |
#include "chrome/browser/metrics/variations/variations_request_scheduler.h" |
+#include "base/strings/string_number_conversions.h" |
+#include "components/variations/variations_associated_data.h" |
+ |
namespace chrome_variations { |
+namespace { |
+ |
+// Returns the time interval between variations seed fetches. |
+base::TimeDelta GetFetchPeriod() { |
+ // The fetch interval can be overridden by a variation param. |
+ std::string period_min_str = |
+ variations::GetVariationParamValue("VarationsServiceControl", |
+ "fetch_period_min"); |
+ size_t period_min; |
+ if (base::StringToSizeT(period_min_str, &period_min)) |
+ return base::TimeDelta::FromMinutes(period_min); |
+ |
+ // The default fetch interval is every 5 hours. |
+ return base::TimeDelta::FromHours(5); |
+} |
+ |
+} // namespace |
+ |
VariationsRequestScheduler::VariationsRequestScheduler( |
const base::Closure& task) : task_(task) { |
} |
@@ -14,10 +35,8 @@ VariationsRequestScheduler::~VariationsRequestScheduler() { |
} |
void VariationsRequestScheduler::Start() { |
- // Time between regular seed fetches, in hours. |
- const int kFetchPeriodHours = 5; |
task_.Run(); |
- timer_.Start(FROM_HERE, base::TimeDelta::FromHours(kFetchPeriodHours), task_); |
+ timer_.Start(FROM_HERE, GetFetchPeriod(), task_); |
} |
void VariationsRequestScheduler::Reset() { |