Home | History | Annotate | Download | only in variations
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_COMMON_VARIATIONS_EXPERIMENT_LABELS_H_
      6 #define CHROME_COMMON_VARIATIONS_EXPERIMENT_LABELS_H_
      7 
      8 #include "base/metrics/field_trial.h"
      9 #include "base/strings/string16.h"
     10 
     11 namespace chrome_variations {
     12 
     13 // Takes the list of active groups and builds the label for the ones that have
     14 // Google Update VariationID associated with them. This will return an empty
     15 // string if there are no such groups.
     16 base::string16 BuildGoogleUpdateExperimentLabel(
     17     const base::FieldTrial::ActiveGroups& active_groups);
     18 
     19 // Creates a final combined experiment labels string with |variation_labels|
     20 // and |other_labels|, appropriately appending a separator based on their
     21 // contents. It is assumed that |variation_labels| and |other_labels| do not
     22 // have leading or trailing separators.
     23 base::string16 CombineExperimentLabels(const base::string16& variation_labels,
     24                                        const base::string16& other_labels);
     25 
     26 // Takes the value of experiment_labels from the registry and returns a valid
     27 // experiment_labels string value containing only the labels that are not
     28 // associated with Chrome Variations.
     29 base::string16 ExtractNonVariationLabels(const base::string16& labels);
     30 
     31 }  // namespace chrome_variations
     32 
     33 #endif  // CHROME_COMMON_VARIATIONS_EXPERIMENT_LABELS_H_
     34