Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: chrome/common/metrics/variations_util.h

Issue 10795060: Rename all of experiments_helper to variations_helper, including files, namespaces, and various fun… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: fix android Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_COMMON_METRICS_EXPERIMENTS_HELPER_H_ 5 #ifndef CHROME_COMMON_METRICS_VARIATIONS_UTIL_H_
6 #define CHROME_COMMON_METRICS_EXPERIMENTS_HELPER_H_ 6 #define CHROME_COMMON_METRICS_VARIATIONS_UTIL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/metrics/field_trial.h" 11 #include "base/metrics/field_trial.h"
12 #include "base/string16.h" 12 #include "base/string16.h"
13 #include "chrome/common/metrics/variation_ids.h" 13 #include "chrome/common/metrics/variation_ids.h"
14 14
15 // This namespace provides various helpers that extend the functionality around 15 // This namespace provides various helpers that extend the functionality around
16 // base::FieldTrial. 16 // base::FieldTrial.
17 // 17 //
18 // This includes a simple API used to handle getting and setting 18 // This includes a simple API used to handle getting and setting
19 // data related to Google-specific experiments in the browser. This is meant to 19 // data related to Google-specific variations in the browser. This is meant to
20 // be an extension to the base::FieldTrial for Google-specific functionality. 20 // be an extension to the base::FieldTrial for Google-specific functionality.
21 // 21 //
22 // These calls are meant to be made directly after appending all your groups to 22 // These calls are meant to be made directly after appending all your groups to
23 // a FieldTrial (for associating IDs) and any time after the group selection has 23 // a FieldTrial (for associating IDs) and any time after the group selection has
24 // been done (for retrieving IDs). 24 // been done (for retrieving IDs).
25 // 25 //
26 // Typical usage looks like this: 26 // Typical usage looks like this:
27 // 27 //
28 // // Set up your trial and groups as usual. 28 // // Set up your trial and groups as usual.
29 // FieldTrial* trial = FieldTrialList::FactoryGetFieldTrial( 29 // FieldTrial* trial = FieldTrialList::FactoryGetFieldTrial(
30 // "trial", 1000, "default", 2012, 12, 31, NULL); 30 // "trial", 1000, "default", 2012, 12, 31, NULL);
31 // const int kHighMemGroup = trial->AppendGroup("HighMem", 20); 31 // const int kHighMemGroup = trial->AppendGroup("HighMem", 20);
32 // const int kLowMemGroup = trial->AppendGroup("LowMem", 20); 32 // const int kLowMemGroup = trial->AppendGroup("LowMem", 20);
33 // // All groups are now created. We want to associate 33 // // All groups are now created. We want to associate
34 // // chrome_variation::VariationIDs with them, so do that now. 34 // // chrome_variation::VariationIDs with them, so do that now.
35 // AssociateGoogleVariationID("trial", "default", chrome_variations::kValueA); 35 // AssociateGoogleVariationID("trial", "default", chrome_variations::kValueA);
36 // AssociateGoogleVariationID("trial", "HighMem", chrome_variations::kValueB); 36 // AssociateGoogleVariationID("trial", "HighMem", chrome_variations::kValueB);
37 // AssociateGoogleVariationID("trial", "LowMem", chrome_variations::kValueC); 37 // AssociateGoogleVariationID("trial", "LowMem", chrome_variations::kValueC);
38 // 38 //
39 // // Elsewhere, we are interested in retrieving the VariationID associated 39 // // Elsewhere, we are interested in retrieving the VariationID associated
40 // // with |trial|. 40 // // with |trial|.
41 // chrome_variations::VariationID id = 41 // chrome_variations::VariationID id =
42 // GetGoogleVariationID(trial->name(), trial->group_name()); 42 // GetGoogleVariationID(trial->name(), trial->group_name());
43 // // Do stuff with |id|... 43 // // Do stuff with |id|...
44 // 44 //
45 // The AssociateGoogleVariationID and GetGoogleVariationID API methods are 45 // The AssociateGoogleVariationID and GetGoogleVariationID API methods are
46 // thread safe. 46 // thread safe.
47 47
48 namespace experiments_helper { 48 namespace chrome_variations {
49 49
50 // The Unique ID of a trial and its selected group, where the name and group 50 // The Unique ID of a trial and its selected group, where the name and group
51 // identifiers are hashes of the trial and group name strings. 51 // identifiers are hashes of the trial and group name strings.
52 struct SelectedGroupId { 52 struct SelectedGroupId {
53 uint32 name; 53 uint32 name;
54 uint32 group; 54 uint32 group;
55 }; 55 };
56 56
57 // We need to supply a Compare class for templates since SelectedGroupId is a 57 // We need to supply a Compare class for templates since SelectedGroupId is a
58 // user-defined type. 58 // user-defined type.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 // Retrieve the chrome_variations::VariationID associated with a FieldTrial 93 // Retrieve the chrome_variations::VariationID associated with a FieldTrial
94 // group. The group is denoted by |trial_name| and |group_name|. This will 94 // group. The group is denoted by |trial_name| and |group_name|. This will
95 // return chrome_variations::kEmptyID if there is currently no associated ID 95 // return chrome_variations::kEmptyID if there is currently no associated ID
96 // for the named group. This API can be nicely combined with 96 // for the named group. This API can be nicely combined with
97 // FieldTrial::GetFieldTrialSelectedGroupIds to enumerate the 97 // FieldTrial::GetFieldTrialSelectedGroupIds to enumerate the
98 // variation IDs for all active FieldTrial groups. 98 // variation IDs for all active FieldTrial groups.
99 chrome_variations::VariationID GetGoogleVariationID( 99 chrome_variations::VariationID GetGoogleVariationID(
100 const std::string& trial_name, 100 const std::string& trial_name,
101 const std::string& group_name); 101 const std::string& group_name);
102 102
103 // Generates experiment chunks from |experiment_strings| that are suitable for 103 // Generates variation chunks from |variation_strings| that are suitable for
104 // crash reporting. 104 // crash reporting.
105 void GenerateExperimentChunks(const std::vector<string16>& experiment_strings, 105 void GenerateVariationChunks(const std::vector<string16>& variation_strings,
106 std::vector<string16>* chunks); 106 std::vector<string16>* chunks);
107 107
108 // Get the current set of chosen FieldTrial groups (aka experiments) and send 108 // Get the current set of chosen FieldTrial groups (aka variations) and send
109 // them to the child process logging module so it can save it for crash dumps. 109 // them to the child process logging module so it can save it for crash dumps.
110 void SetChildProcessLoggingExperimentList(); 110 void SetChildProcessLoggingVariationList();
111 111
112 } // namespace experiments_helper 112 } // namespace chrome_variations
113 113
114 // Expose some functions for testing. These functions just wrap functionality 114 // Expose some functions for testing. These functions just wrap functionality
115 // that is implemented above. 115 // that is implemented above.
116 namespace testing { 116 namespace testing {
117 117
118 void TestGetFieldTrialSelectedGroupIdsForSelectedGroups( 118 void TestGetFieldTrialSelectedGroupIdsForSelectedGroups(
119 const base::FieldTrial::SelectedGroups& selected_groups, 119 const base::FieldTrial::SelectedGroups& selected_groups,
120 std::vector<experiments_helper::SelectedGroupId>* name_group_ids); 120 std::vector<chrome_variations::SelectedGroupId>* name_group_ids);
121 121
122 uint32 TestHashName(const std::string& name); 122 uint32 TestHashName(const std::string& name);
123 123
124 } // namespace testing 124 } // namespace testing
125 125
126 #endif // CHROME_COMMON_METRICS_EXPERIMENTS_HELPER_H_ 126 #endif // CHROME_COMMON_METRICS_VARIATIONS_UTIL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698