Chromium Code Reviews| Index: chrome/browser/chrome_browser_field_trials.cc |
| diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chrome_browser_field_trials.cc |
| index 38589ebe2f83bcf8a62f6d73e3ed9a095bd31d95..30384d6cf367e1a408a5dcb74e07cf262f5a9b2c 100644 |
| --- a/chrome/browser/chrome_browser_field_trials.cc |
| +++ b/chrome/browser/chrome_browser_field_trials.cc |
| @@ -18,11 +18,14 @@ |
| #include "base/time/time.h" |
| #include "build/build_config.h" |
| #include "chrome/browser/metrics/chrome_metrics_service_client.h" |
| +#include "chrome/browser/metrics/chrome_metrics_services_manager_client.h" |
| #include "chrome/browser/tracing/background_tracing_field_trial.h" |
| +#include "chrome/common/channel_info.h" |
| #include "chrome/common/chrome_paths.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "components/metrics/metrics_pref_names.h" |
| #include "components/variations/variations_associated_data.h" |
| +#include "components/version_info/version_info.h" |
| #if defined(OS_ANDROID) |
| #include "chrome/browser/chrome_browser_field_trials_mobile.h" |
| @@ -111,6 +114,27 @@ void InstantiatePersistentHistograms() { |
| allocator->SetPersistentLocation(active_file); |
| } |
| +// Create a field trial to controll metrics/crash sampling for Stable on |
|
Alexei Svitkine (slow)
2016/08/30 18:17:05
Nit: "controll" -> "control"
jwd
2016/08/30 18:59:41
Done.
|
| +// Windows/Android if no variations seed was applied. |
| +void CreateFallbackSamplingTrialIfNeeded(bool has_seed, |
| + base::FeatureList* feature_list) { |
| +#if defined(OS_WIN) || defined(OS_ANDROID) |
| + // Only create the fallback trial if there isn't already a variations seed |
| + // being applied. This should occur during first run when first-run variations |
| + // isn't supported. It's assumed that, if there is a seed, then it either |
| + // contains the relavent study, or is intentionally omitted, so no fallback is |
| + // needed. |
| + if (has_seed) |
| + return; |
| + |
| + // Sampling is only supported on Stable. |
| + if (chrome::GetChannel() != version_info::Channel::STABLE) |
| + return; |
| + |
| + ChromeMetricsServicesManagerClient::CreateFallbackSamplingTrial(feature_list); |
| +#endif // defined(OS_WIN) || defined(OS_ANDROID) |
| +} |
| + |
| } // namespace |
| ChromeBrowserFieldTrials::ChromeBrowserFieldTrials( |
| @@ -132,6 +156,12 @@ void ChromeBrowserFieldTrials::SetupFieldTrials() { |
| #endif |
| } |
| +void ChromeBrowserFieldTrials::SetupFeatureControllingFieldTrials( |
| + bool has_seed, |
| + base::FeatureList* feature_list) { |
| + CreateFallbackSamplingTrialIfNeeded(has_seed, feature_list); |
| +} |
| + |
| void ChromeBrowserFieldTrials::InstantiateDynamicTrials() { |
| // Persistent histograms must be enabled as soon as possible. |
| InstantiatePersistentHistograms(); |