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

Side by Side Diff: components/variations/active_field_trials.h

Issue 2950173003: Support add-on 'field trial' records. (Closed)
Patch Set: addressed review comments by asvitkine Created 3 years, 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_ 5 #ifndef COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_
6 #define COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_ 6 #define COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
11 11
12 #include "base/metrics/field_trial.h" 12 #include "base/metrics/field_trial.h"
13 #include "base/strings/string_piece.h"
13 14
14 namespace variations { 15 namespace variations {
15 16
16 // The Unique ID of a trial and its active group, where the name and group 17 // The Unique ID of a trial and its active group, where the name and group
17 // identifiers are hashes of the trial and group name strings. 18 // identifiers are hashes of the trial and group name strings.
18 struct ActiveGroupId { 19 struct ActiveGroupId {
19 uint32_t name; 20 uint32_t name;
20 uint32_t group; 21 uint32_t group;
21 }; 22 };
22 23
23 // Returns an ActiveGroupId struct for the given trial and group names. 24 // Returns an ActiveGroupId struct for the given trial and group names.
24 ActiveGroupId MakeActiveGroupId(const std::string& trial_name, 25 ActiveGroupId MakeActiveGroupId(base::StringPiece trial_name,
25 const std::string& group_name); 26 base::StringPiece group_name);
26 27
27 // We need to supply a Compare class for templates since ActiveGroupId is a 28 // We need to supply a Compare class for templates since ActiveGroupId is a
28 // user-defined type. 29 // user-defined type.
29 struct ActiveGroupIdCompare { 30 struct ActiveGroupIdCompare {
30 bool operator() (const ActiveGroupId& lhs, const ActiveGroupId& rhs) const { 31 bool operator() (const ActiveGroupId& lhs, const ActiveGroupId& rhs) const {
31 // The group and name fields are just SHA-1 Hashes, so we just need to treat 32 // The group and name fields are just SHA-1 Hashes, so we just need to treat
32 // them as IDs and do a less-than comparison. We test group first, since 33 // them as IDs and do a less-than comparison. We test group first, since
33 // name is more likely to collide. 34 // name is more likely to collide.
34 if (lhs.group != rhs.group) 35 if (lhs.group != rhs.group)
35 return lhs.group < rhs.group; 36 return lhs.group < rhs.group;
(...skipping 27 matching lines...) Expand all
63 64
64 void TestGetFieldTrialActiveGroupIds( 65 void TestGetFieldTrialActiveGroupIds(
65 const base::FieldTrial::ActiveGroups& active_groups, 66 const base::FieldTrial::ActiveGroups& active_groups,
66 std::vector<ActiveGroupId>* name_group_ids); 67 std::vector<ActiveGroupId>* name_group_ids);
67 68
68 } // namespace testing 69 } // namespace testing
69 70
70 } // namespace variations 71 } // namespace variations
71 72
72 #endif // COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_ 73 #endif // COMPONENTS_VARIATIONS_ACTIVE_FIELD_TRIALS_H_
OLDNEW
« no previous file with comments | « components/metrics/persistent_system_profile_unittest.cc ('k') | components/variations/active_field_trials.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698