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..413123ce98919545acd95a4aae4e6f6917d6ad04 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); |
| } |
| +#if defined(OS_WIN) || defined(OS_ANDROID) |
| +// Create a field trial to controll metrics/crash sampling for Stable on |
| +// Windows/Android if no variations seed was applied. |
| +void CreateFallbackSamplingTrialIfNeeded(bool was_a_seed_applied, |
| + base::FeatureList* feature_list) { |
| + // 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 (was_a_seed_applied) |
| + return; |
| + |
| + // Sampling is only supported on Stable. |
| + if (chrome::GetChannel() != version_info::Channel::UNKNOWN) |
|
Alexei Svitkine (slow)
2016/08/29 19:38:42
Shouldn't you be checking for STABLE?
jwd
2016/08/29 21:36:24
Done.
|
| + return; |
| + |
| + ChromeMetricsServicesManagerClient::CreateFallbackSamplingTrial(feature_list); |
| +} |
| +#endif // defined(OS_WIN) || defined(OS_ANDROID) |
| + |
| } // namespace |
| ChromeBrowserFieldTrials::ChromeBrowserFieldTrials( |
| @@ -132,6 +156,14 @@ void ChromeBrowserFieldTrials::SetupFieldTrials() { |
| #endif |
| } |
| +void ChromeBrowserFieldTrials::SetupFeatureControllingFieldTrials( |
| + bool was_a_seed_applied, |
| + base::FeatureList* feature_list) { |
| +#if defined(OS_WIN) || defined(OS_ANDROID) |
|
Alexei Svitkine (slow)
2016/08/29 19:38:42
How about just moving the ifdefs to the body of th
jwd
2016/08/29 21:36:24
Done.
|
| + CreateFallbackSamplingTrialIfNeeded(was_a_seed_applied, feature_list); |
| +#endif |
| +} |
| + |
| void ChromeBrowserFieldTrials::InstantiateDynamicTrials() { |
| // Persistent histograms must be enabled as soon as possible. |
| InstantiatePersistentHistograms(); |