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

Unified Diff: chrome/installer/util/experiment_storage.h

Issue 2933043002: Installer support for Windows 10 inactive user toast. (Closed)
Patch Set: now with some tests Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/installer/util/experiment_storage.h
diff --git a/chrome/installer/util/experiment_storage.h b/chrome/installer/util/experiment_storage.h
index ad39e07743c77bdaaf19a979246b3621b89cbccd..c1e0f1d5c5d7560f2cbb0f4732c285c69f78d4ac 100644
--- a/chrome/installer/util/experiment_storage.h
+++ b/chrome/installer/util/experiment_storage.h
@@ -18,9 +18,9 @@ struct ExperimentMetrics;
// Manages the storage of experiment state on the machine.
//
-// Participation is a per-install property evaluated one time to determine
-// whether or not the install as a whole participates in the study. It is
-// stored in the install's ClientState key.
+// Participation is a per-install property evaluated one time to determine which
+// study the client participates in. It is stored in the install's ClientState
+// key.
//
// ExperimentMetrics are stored in a per-install experiment_label, while the
// fine-grained Experiment data are stored in a per-user key in Chrome's
@@ -38,16 +38,13 @@ struct ExperimentMetrics;
// mutex is used for all reads and writes to ensure consistent state.
class ExperimentStorage {
public:
- enum class Participation {
- // No participation state was found for the install.
- kNotEvaluated,
+ // An identifier of which study the install participates in.
+ using Study = uint32_t;
- // The client is not participating in the study.
- kNotParticipating,
-
- // The client is participating in the study.
- kIsParticipating,
- };
+ // The possible Study values.
+ static constexpr Study kNoStudySelected = 0;
+ static constexpr Study kStudyOne = 1;
+ static constexpr Study kStudyTwo = 2;
Patrick Monette 2017/06/13 19:13:42 Does study 2 still means not participating?
grt (UTC plus 2) 2017/06/14 20:43:44 Not any more. It means not participating in the cu
// Grants the holder exclusive access to the data in the registry. Consumers
// are expected to not hold an instance across any blocking operations.
@@ -56,12 +53,13 @@ class ExperimentStorage {
~Lock();
// Reads the participation state for the install. Returns false in case of
- // error.
- bool ReadParticipation(Participation* participation);
+ // error. |participation| is set to kNotEvaluated if no value is present;
+ // otherwise, it is set to the value found.
+ bool ReadParticipation(Study* participation);
// Writes the participation state for the install. Returns false if the
// write failed.
- bool WriteParticipation(Participation participation);
+ bool WriteParticipation(Study participation);
// Loads the experiment metrics and data from the registry. Returns false if
// the state in the registry corresponds to a different user or could not be

Powered by Google App Engine
This is Rietveld 408576698