OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // FieldTrial is a class for handling details of statistical experiments | 5 // FieldTrial is a class for handling details of statistical experiments |
6 // performed by actual users in the field (i.e., in a shipped or beta product). | 6 // performed by actual users in the field (i.e., in a shipped or beta product). |
7 // All code is called exclusively on the UI thread currently. | 7 // All code is called exclusively on the UI thread currently. |
8 // | 8 // |
9 // The simplest example is an experiment to see whether one of two options | 9 // The simplest example is an experiment to see whether one of two options |
10 // produces "better" results across our user population. In that scenario, UMA | 10 // produces "better" results across our user population. In that scenario, UMA |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 | 177 |
178 friend class base::FieldTrialList; | 178 friend class base::FieldTrialList; |
179 | 179 |
180 friend class RefCounted<FieldTrial>; | 180 friend class RefCounted<FieldTrial>; |
181 | 181 |
182 virtual ~FieldTrial(); | 182 virtual ~FieldTrial(); |
183 | 183 |
184 // Returns the group_name. A winner need not have been chosen. | 184 // Returns the group_name. A winner need not have been chosen. |
185 std::string group_name_internal() const { return group_name_; } | 185 std::string group_name_internal() const { return group_name_; } |
186 | 186 |
187 // Get build time. | |
188 static Time GetBuildTime(); | |
189 | |
190 // Calculates a uniformly-distributed double between [0.0, 1.0) given | 187 // Calculates a uniformly-distributed double between [0.0, 1.0) given |
191 // a |client_id| and a |trial_name| (the latter is used as salt to avoid | 188 // a |client_id| and a |trial_name| (the latter is used as salt to avoid |
192 // separate one-time randomized trials from all having the same results). | 189 // separate one-time randomized trials from all having the same results). |
193 static double HashClientId(const std::string& client_id, | 190 static double HashClientId(const std::string& client_id, |
194 const std::string& trial_name); | 191 const std::string& trial_name); |
195 | 192 |
196 // The name of the field trial, as can be found via the FieldTrialList. | 193 // The name of the field trial, as can be found via the FieldTrialList. |
197 const std::string name_; | 194 const std::string name_; |
198 | 195 |
199 // The maximum sum of all probabilities supplied, which corresponds to 100%. | 196 // The maximum sum of all probabilities supplied, which corresponds to 100%. |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 | 379 |
383 // List of observers to be notified when a group is selected for a FieldTrial. | 380 // List of observers to be notified when a group is selected for a FieldTrial. |
384 ObserverList<Observer> observer_list_; | 381 ObserverList<Observer> observer_list_; |
385 | 382 |
386 DISALLOW_COPY_AND_ASSIGN(FieldTrialList); | 383 DISALLOW_COPY_AND_ASSIGN(FieldTrialList); |
387 }; | 384 }; |
388 | 385 |
389 } // namespace base | 386 } // namespace base |
390 | 387 |
391 #endif // BASE_METRICS_FIELD_TRIAL_H_ | 388 #endif // BASE_METRICS_FIELD_TRIAL_H_ |
OLD | NEW |