Index: chrome/browser/metrics/proto/study.proto |
diff --git a/chrome/browser/metrics/proto/study.proto b/chrome/browser/metrics/proto/study.proto |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f8924b69b39e23ce0edf9b1e50fa16999419e1b2 |
--- /dev/null |
+++ b/chrome/browser/metrics/proto/study.proto |
@@ -0,0 +1,96 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+syntax = "proto2"; |
+ |
+option optimize_for = LITE_RUNTIME; |
+ |
+package chrome_variations; |
+ |
+// This defines the Protocol Buffer representation of a Chrome Variations study |
+// as sent to clients of the Variations server. |
+// |
+// Next tag: 10 |
+message Study { |
+ // The name of the study. Should not contain spaces or special characters. |
+ // Ex: "my_study" |
+ required string name = 1; |
+ |
+ // The start date of the study in Unix time format. (Seconds since midnight |
+ // January 1, 1970 UTC). See: http://en.wikipedia.org/wiki/Unix_time |
+ // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z) |
+ optional int64 start_date = 2; |
+ |
+ // The expiry date of the study in Unix time format. (Seconds since midnight |
+ // January 1, 1970 UTC). See: http://en.wikipedia.org/wiki/Unix_time |
+ // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z) |
+ optional int64 expiry_date = 3; |
+ |
+ // The minimum Chrome version for this study, allowing a trailing '*' |
+ // character for pattern matching. Inclusive. (To check for a match, iterate |
+ // over each component checking >= until a * or end of string is reached.) |
+ // Optional - if not specified, there is no minimum version. |
+ // Ex: "17.0.963.46", "17.0.963.*", "17.*" |
+ optional string min_version = 4; |
+ |
+ // The maximum Chrome version for this study; same formatting as |min_version| |
+ // above. Inclusive. (To check for a match, iterate over each component |
+ // checking <= until a * or end of string is reached.) |
+ // Optional - if not specified, there is no maximum version. |
+ // Ex: "19.*" |
+ optional string max_version = 5; |
+ |
+ // Possible Chrome release channels. |
+ // See: http://dev.chromium.org/getting-involved/dev-channel |
+ enum Channel { |
+ CANARY = 0; |
+ DEV = 1; |
+ BETA = 2; |
+ STABLE = 3; |
+ } |
+ |
+ // List of channels that will receive this study. If omitted, the study |
+ // applies to all channels. |
+ // Ex: [BETA, STABLE] |
+ repeated Channel channel = 6; |
+ |
+ // Consistency setting for a study. |
+ enum Consistency { |
+ SESSION = 0; // Can't change within a session. |
+ PERMANENT = 1; // Can't change for a given user. |
+ } |
+ |
+ // Consistency setting for this study. Optional - defaults to SESSION. |
+ // Ex: PERMANENT |
+ optional Consistency consistency = 7 [default = SESSION]; |
+ |
+ // Name of the experiment that gets the default experience. This experiment |
+ // must be included in the list below. |
+ // Ex: "default" |
+ optional string default_experiment_name = 8; |
+ |
+ // An experiment within the study. |
+ // |
+ // Next tag: 4 |
+ message Experiment { |
+ // The name of the experiment within the study. |
+ // Ex: "bucketA" |
+ required string name = 1; |
+ // The cut of the total probability taken for this group (the x in x / N, |
+ // where N is the sum of all x’s). |
+ // Ex: "50" |
+ required uint32 probability_weight = 2; |
+ // Optional id used to uniquely identify this experiment. |
+ optional uint64 experiment_id = 3; |
+ } |
+ |
+ // List of experiments in this study. This list should include the default / |
+ // control group. |
+ // |
+ // For example, to specify that 99% of users get the default behavior, while |
+ // 0.5% of users get experience "A" and 0.5% of users get experience "B", |
+ // specify the values below. |
+ // Ex: { "default": 990, "A": 5, "B": 5 } |
+ repeated Experiment experiment = 9; |
+} |