| // Copyright 2017 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_VARIATIONS_PLATFORM_FIELD_TRIALS_H_ | 
 | #define COMPONENTS_VARIATIONS_PLATFORM_FIELD_TRIALS_H_ | 
 |  | 
 | #include "base/metrics/field_trial.h" | 
 |  | 
 | namespace variations { | 
 |  | 
 | // Infrastructure for setting up platform specific field trials. Chrome and | 
 | // WebView make use through their corresponding subclasses. | 
 | class PlatformFieldTrials { | 
 |  public: | 
 |   PlatformFieldTrials() = default; | 
 |   virtual ~PlatformFieldTrials() = default; | 
 |  | 
 |   // Set up field trials for a specific platform. | 
 |   virtual void SetupFieldTrials() = 0; | 
 |  | 
 |   // Create field trials that will control feature list features. This should be | 
 |   // called during the same timing window as | 
 |   // FeatureList::AssociateReportingFieldTrial. |has_seed| indicates that the | 
 |   // variations service used a seed to create field trials. This can be used to | 
 |   // prevent associating a field trial with a feature that you expect to be | 
 |   // controlled by the variations seed. | 
 |   virtual void SetupFeatureControllingFieldTrials( | 
 |       bool has_seed, | 
 |       base::FeatureList* feature_list) = 0; | 
 |  | 
 |  private: | 
 |   DISALLOW_COPY_AND_ASSIGN(PlatformFieldTrials); | 
 | }; | 
 |  | 
 | }  // namespace variations | 
 |  | 
 | #endif  // COMPONENTS_VARIATIONS_PLATFORM_FIELD_TRIALS_H_ |