summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/webui/about_ui.cc15
-rw-r--r--chrome/common/metrics/variations/variations_util.cc20
-rw-r--r--chrome/common/metrics/variations/variations_util.h7
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