| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/variations/variations_util.h" | 5 #include "chrome/common/variations/variations_util.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 } // namespace | 27 } // namespace |
| 28 | 28 |
| 29 void SetChildProcessLoggingVariationList() { | 29 void SetChildProcessLoggingVariationList() { |
| 30 std::vector<std::string> experiment_strings; | 30 std::vector<std::string> experiment_strings; |
| 31 variations::GetFieldTrialActiveGroupIdsAsStrings(&experiment_strings); | 31 variations::GetFieldTrialActiveGroupIdsAsStrings(&experiment_strings); |
| 32 crash_keys::SetVariationsList(experiment_strings); | 32 crash_keys::SetVariationsList(experiment_strings); |
| 33 } | 33 } |
| 34 | 34 |
| 35 bool AssociateParamsFromString(const std::string& varations_string) { | 35 bool AssociateParamsFromString(const std::string& varations_string) { |
| 36 // Format: Trial1.Group1:k1/v1/k2/v2,Trial2.Group2:k1/v1/k2/v2 | 36 // Format: Trial1.Group1:k1/v1/k2/v2,Trial2.Group2:k1/v1/k2/v2 |
| 37 std::vector<std::string> experiment_groups; | 37 for (const base::StringPiece& experiment_group : base::SplitStringPiece( |
| 38 base::SplitString(varations_string, ',', &experiment_groups); | 38 varations_string, ",", |
| 39 for (const auto& experiment_group : experiment_groups) { | 39 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { |
| 40 std::vector<std::string> experiment; | 40 std::vector<base::StringPiece> experiment = base::SplitStringPiece( |
| 41 base::SplitString(experiment_group, ':', &experiment); | 41 experiment_group, ":", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
| 42 if (experiment.size() != 2) | 42 if (experiment.size() != 2) |
| 43 return false; | 43 return false; |
| 44 | 44 |
| 45 std::vector<std::string> group_parts; | 45 std::vector<std::string> group_parts = base::SplitString( |
| 46 base::SplitString(experiment[0], '.', &group_parts); | 46 experiment[0], ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
| 47 if (group_parts.size() != 2) | 47 if (group_parts.size() != 2) |
| 48 return false; | 48 return false; |
| 49 | 49 |
| 50 std::vector<std::string> key_values; | 50 std::vector<std::string> key_values = base::SplitString( |
| 51 base::SplitString(experiment[1], '/', &key_values); | 51 experiment[1], "/", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
| 52 if (key_values.size() % 2 != 0) | 52 if (key_values.size() % 2 != 0) |
| 53 return false; | 53 return false; |
| 54 | 54 |
| 55 std::map<std::string, std::string> params; | 55 std::map<std::string, std::string> params; |
| 56 for (size_t i = 0; i < key_values.size(); i += 2) { | 56 for (size_t i = 0; i < key_values.size(); i += 2) { |
| 57 std::string key = EscapeValue(key_values[i]); | 57 std::string key = EscapeValue(key_values[i]); |
| 58 std::string value = EscapeValue(key_values[i + 1]); | 58 std::string value = EscapeValue(key_values[i + 1]); |
| 59 params[key] = value; | 59 params[key] = value; |
| 60 } | 60 } |
| 61 std::string trial = EscapeValue(group_parts[0]); | 61 std::string trial = EscapeValue(group_parts[0]); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 80 } | 80 } |
| 81 base::FieldTrialList::CreateFieldTrial(group.study, group.group_name); | 81 base::FieldTrialList::CreateFieldTrial(group.study, group.group_name); |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 | 84 |
| 85 void AssociateDefaultFieldTrialConfig() { | 85 void AssociateDefaultFieldTrialConfig() { |
| 86 AssociateParamsFromFieldTrialConfig(kFieldTrialConfig); | 86 AssociateParamsFromFieldTrialConfig(kFieldTrialConfig); |
| 87 } | 87 } |
| 88 | 88 |
| 89 } // namespace chrome_variations | 89 } // namespace chrome_variations |
| OLD | NEW |