diff options
-rw-r--r-- | chrome/browser/ui/webui/about_ui.cc | 15 | ||||
-rw-r--r-- | chrome/common/metrics/variations/variations_util.cc | 20 | ||||
-rw-r--r-- | chrome/common/metrics/variations/variations_util.h | 7 |
3 files changed, 30 insertions, 12 deletions
diff --git a/chrome/browser/ui/webui/about_ui.cc b/chrome/browser/ui/webui/about_ui.cc index c635b5d..3b732e2 100644 --- a/chrome/browser/ui/webui/about_ui.cc +++ b/chrome/browser/ui/webui/about_ui.cc @@ -46,6 +46,7 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/jstemplate_builder.h" +#include "chrome/common/metrics/variations/variations_util.h" #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" #include "content/public/browser/browser_thread.h" @@ -1113,10 +1114,8 @@ std::string AboutVersionStrings(DictionaryValue* localized_strings, } ChromeWebUIDataSource::SetFontAndTextDirection(localized_strings); -#if !defined(NDEBUG) localized_strings->SetString("variations_name", l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_VARIATIONS)); -#endif std::string data; jstemplate_builder::AppendJsonJS(localized_strings, &data); @@ -1328,8 +1327,8 @@ void VersionDOMHandler::RegisterMessages() { void VersionDOMHandler::HandleRequestVariationsList(const ListValue* args) { scoped_ptr<ListValue> variations_list(new ListValue()); -#if !defined(NDEBUG) std::vector<std::string> variations; +#if !defined(NDEBUG) std::string variation_state; base::FieldTrialList::StatesToString(&variation_state); @@ -1344,13 +1343,19 @@ void VersionDOMHandler::HandleRequestVariationsList(const ListValue* args) { DCHECK_EQ(0U, tokens.size() % 2); for (size_t i = 0; i < tokens.size(); i += 2) variations.push_back(tokens[i] + ":" + tokens[i + 1]); +#else + // In release mode, display the hashes only. + std::vector<string16> selected_groups; + chrome_variations::GetFieldTrialSelectedGroupIdsAsStrings(&selected_groups); + for (size_t i = 0; i < selected_groups.size(); ++i) + variations.push_back(UTF16ToASCII(selected_groups[i])); +#endif for (std::vector<std::string>::const_iterator it = variations.begin(); it != variations.end(); ++it) { variations_list->Append(Value::CreateStringValue(*it)); } -#endif - // In release mode, this will return an empty list to clear the section. + web_ui()->CallJavascriptFunction("returnVariationsList", *variations_list.release()); } diff --git a/chrome/common/metrics/variations/variations_util.cc b/chrome/common/metrics/variations/variations_util.cc index fcc5ed3..a74726a 100644 --- a/chrome/common/metrics/variations/variations_util.cc +++ b/chrome/common/metrics/variations/variations_util.cc @@ -94,6 +94,17 @@ void GetFieldTrialSelectedGroupIds( name_group_ids); } +void GetFieldTrialSelectedGroupIdsAsStrings( + std::vector<string16>* output) { + DCHECK(output->empty()); + std::vector<SelectedGroupId> name_group_ids; + GetFieldTrialSelectedGroupIds(&name_group_ids); + for (size_t i = 0; i < name_group_ids.size(); ++i) { + output->push_back(UTF8ToUTF16(base::StringPrintf( + "%x-%x", name_group_ids[i].name, name_group_ids[i].group))); + } +} + void AssociateGoogleVariationID(const std::string& trial_name, const std::string& group_name, chrome_variations::VariationID id) { @@ -135,13 +146,8 @@ void GenerateVariationChunks(const std::vector<string16>& experiments, } void SetChildProcessLoggingVariationList() { - std::vector<SelectedGroupId> name_group_ids; - GetFieldTrialSelectedGroupIds(&name_group_ids); - std::vector<string16> experiment_strings(name_group_ids.size()); - for (size_t i = 0; i < name_group_ids.size(); ++i) { - experiment_strings[i] = UTF8ToUTF16(base::StringPrintf( - "%x-%x", name_group_ids[i].name, name_group_ids[i].group)); - } + std::vector<string16> experiment_strings; + GetFieldTrialSelectedGroupIdsAsStrings(&experiment_strings); child_process_logging::SetExperimentList(experiment_strings); } diff --git a/chrome/common/metrics/variations/variations_util.h b/chrome/common/metrics/variations/variations_util.h index df8de02..c97a4a5 100644 --- a/chrome/common/metrics/variations/variations_util.h +++ b/chrome/common/metrics/variations/variations_util.h @@ -75,6 +75,13 @@ struct SelectedGroupIdCompare { void GetFieldTrialSelectedGroupIds( std::vector<SelectedGroupId>* name_group_ids); +// Fills the supplied vector |output| (which must be empty when called) with +// unique string representations of SelectedGroupIds for each Field Trial that +// has a chosen group. The strings are formatted as "<TrialName>-<GroupName>", +// with the names as hex strings. Field Trials for which a group has not been +// chosen yet are NOT returned in this list. +void GetFieldTrialSelectedGroupIdsAsStrings(std::vector<string16>* output); + // Associate a chrome_variations::VariationID value with a FieldTrial group. If // an id was previously set for |trial_name| and |group_name|, this does // nothing. The group is denoted by |trial_name| and |group_name|. This must be |