// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_METRICS_CHROME_BROWSER_SAMPLING_TRIALS_H_ #define CHROME_BROWSER_METRICS_CHROME_BROWSER_SAMPLING_TRIALS_H_ #include "base/feature_list.h" #include "base/metrics/field_trial.h" namespace metrics { // Create sampling trials to control metrics/crash sampling on Windows/Android // if they do not exist (e.g., no variations seed was applied, or the variations // seed did not contain the trials). On Windows, there is only one trial to // control sampling. On Android, there are two (with different sampling rates, // see crbug/1306481 for more details), but the client will only use one. The // trial used depends on when metrics reporting was enabled. We create both // trials regardless of which one the client would use at the time this is // called, because the trial used may change during the session (e.g., if the // user disables then re-enables metrics reporting during the same session). void CreateFallbackSamplingTrialsIfNeeded( const base::FieldTrial::EntropyProvider& entropy_providers, base::FeatureList* feature_list); // Create a field trial to control UKM sampling for Stable if it does not exist // (e.g., no variations seed was applied, or the variations seed did not contain // the trial). Note that UKM sampling is not per-client such as metrics/crash // sampling (see CreateFallbackSamplingTrialsIfNeeded() above), but rather // per-metric. void CreateFallbackUkmSamplingTrialIfNeeded( const base::FieldTrial::EntropyProvider& entropy_providers, base::FeatureList* feature_list); } // namespace metrics #endif // CHROME_BROWSER_METRICS_CHROME_BROWSER_SAMPLING_TRIALS_H_