| OLD | NEW |
| 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 // 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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, ActiveGroupsNotFinalized); | 214 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, ActiveGroupsNotFinalized); |
| 215 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, Save); | 215 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, Save); |
| 216 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SaveAll); | 216 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SaveAll); |
| 217 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, DuplicateRestore); | 217 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, DuplicateRestore); |
| 218 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedTurnFeatureOff); | 218 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedTurnFeatureOff); |
| 219 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedTurnFeatureOn); | 219 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedTurnFeatureOn); |
| 220 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedChangeDefault_Default); | 220 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedChangeDefault_Default); |
| 221 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedChangeDefault_NonDefault); | 221 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, SetForcedChangeDefault_NonDefault); |
| 222 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, FloatBoundariesGiveEqualGroupSizes); | 222 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, FloatBoundariesGiveEqualGroupSizes); |
| 223 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, DoesNotSurpassTotalProbability); | 223 FRIEND_TEST_ALL_PREFIXES(FieldTrialTest, DoesNotSurpassTotalProbability); |
| 224 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, |
| 225 DoNotAddSimulatedFieldTrialsToAllocator); |
| 224 | 226 |
| 225 friend class base::FieldTrialList; | 227 friend class base::FieldTrialList; |
| 226 | 228 |
| 227 friend class RefCounted<FieldTrial>; | 229 friend class RefCounted<FieldTrial>; |
| 228 | 230 |
| 229 // This is the group number of the 'default' group when a choice wasn't forced | 231 // This is the group number of the 'default' group when a choice wasn't forced |
| 230 // by a call to FieldTrialList::CreateFieldTrial. It is kept private so that | 232 // by a call to FieldTrialList::CreateFieldTrial. It is kept private so that |
| 231 // consumers don't use it by mistake in cases where the group was forced. | 233 // consumers don't use it by mistake in cases where the group was forced. |
| 232 static const int kDefaultGroupNumber; | 234 static const int kDefaultGroupNumber; |
| 233 | 235 |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 // Notify all observers that a group has been finalized for |field_trial|. | 547 // Notify all observers that a group has been finalized for |field_trial|. |
| 546 static void NotifyFieldTrialGroupSelection(FieldTrial* field_trial); | 548 static void NotifyFieldTrialGroupSelection(FieldTrial* field_trial); |
| 547 | 549 |
| 548 // Return the number of active field trials. | 550 // Return the number of active field trials. |
| 549 static size_t GetFieldTrialCount(); | 551 static size_t GetFieldTrialCount(); |
| 550 | 552 |
| 551 private: | 553 private: |
| 552 // Allow tests to access our innards for testing purposes. | 554 // Allow tests to access our innards for testing purposes. |
| 553 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, InstantiateAllocator); | 555 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, InstantiateAllocator); |
| 554 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, AddTrialsToAllocator); | 556 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, AddTrialsToAllocator); |
| 557 FRIEND_TEST_ALL_PREFIXES(FieldTrialListTest, |
| 558 DoNotAddSimulatedFieldTrialsToAllocator); |
| 555 | 559 |
| 556 #if defined(OS_WIN) | 560 #if defined(OS_WIN) |
| 557 // Takes in |handle| that should have been retrieved from the command line and | 561 // Takes in |handle| that should have been retrieved from the command line and |
| 558 // creates a SharedMemoryHandle from it, and then calls | 562 // creates a SharedMemoryHandle from it, and then calls |
| 559 // CreateTrialsFromSharedMemory(). Returns true on success, false on failure. | 563 // CreateTrialsFromSharedMemory(). Returns true on success, false on failure. |
| 560 static bool CreateTrialsFromWindowsHandle(HANDLE handle); | 564 static bool CreateTrialsFromWindowsHandle(HANDLE handle); |
| 561 #endif | 565 #endif |
| 562 | 566 |
| 563 // Expects a mapped piece of shared memory |shm| that was created from the | 567 // Expects a mapped piece of shared memory |shm| that was created from the |
| 564 // browser process's field_trial_allocator and shared via the command line. | 568 // browser process's field_trial_allocator and shared via the command line. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 | 636 |
| 633 // Tracks whether CreateTrialsFromCommandLine() has been called. | 637 // Tracks whether CreateTrialsFromCommandLine() has been called. |
| 634 bool create_trials_from_command_line_called_ = false; | 638 bool create_trials_from_command_line_called_ = false; |
| 635 | 639 |
| 636 DISALLOW_COPY_AND_ASSIGN(FieldTrialList); | 640 DISALLOW_COPY_AND_ASSIGN(FieldTrialList); |
| 637 }; | 641 }; |
| 638 | 642 |
| 639 } // namespace base | 643 } // namespace base |
| 640 | 644 |
| 641 #endif // BASE_METRICS_FIELD_TRIAL_H_ | 645 #endif // BASE_METRICS_FIELD_TRIAL_H_ |
| OLD | NEW |