Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / components / variations / proto / study.proto
index 265b274..e58b8f9 100644 (file)
@@ -43,7 +43,7 @@ message Study {
 
   // An experiment within the study.
   //
-  // Next tag: 7
+  // Next tag: 9
   message Experiment {
     // A named parameter value for this experiment.
     //
@@ -68,6 +68,10 @@ message Study {
     // properties.
     optional uint64 google_web_experiment_id = 3;
 
+    // Optional id used to allow this experiment to trigger experimental
+    // behavior on Google web properties.
+    optional uint64 google_web_trigger_experiment_id = 8;
+
     // Optional id used to uniquely identify this experiment for Google Update.
     optional uint64 google_update_experiment_id = 4;
 
@@ -79,6 +83,30 @@ message Study {
 
     // Parameter values for this experiment.
     repeated Param param = 6;
+
+    enum Type {
+      // Regular experiment group. This is the default value and can be omitted.
+      NORMAL = 0;
+
+      // Changes to this experiment group are ignored for the purposes of
+      // kill-switch triggering. Included to allow the flexibility to not
+      // trigger this logic for specific cases (e.g. a group rename without
+      // any functionality changes).
+      IGNORE_CHANGE = 1;
+
+      // This is a kill-switch group that should be killed at "best effort"
+      // priority, e.g. with a hot dog menu badge. The experiment must have a
+      // probability_weight of 0.
+      KILL_BEST_EFFORT = 2;
+
+      // This is a kill-switch group that should be killed with "critical"
+      // priority. Depending on platform this may result in showing a
+      // non-dismissible restart prompt with a timer. This should only be used
+      // in very serious emergency circumstances. The experiment must have a
+      // probability_weight of 0.
+      KILL_CRITICAL = 3;
+    }
+    optional Type type = 7 [default = NORMAL];
   }
 
   // List of experiments in this study. This list should include the default /
@@ -122,7 +150,7 @@ message Study {
   // Filtering criteria specifying whether this study is applicable to a given
   // Chrome instance.
   //
-  // Next tag: 8
+  // Next tag: 10
   message Filter {
     // 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
@@ -162,6 +190,22 @@ message Study {
     // applies to all form factors.
     // Ex: [PHONE, TABLET]
     repeated FormFactor form_factor = 7;
+
+    // List of ChromeOS hardware classes that will receive this study. Each
+    // entry is treated as a substring of the actual device hardware_class,
+    // so "FOO" will match the client's hardware class "Device FOOBAR". If
+    // omitted, the study applies to all hardware classes unless
+    // |exclude_hardware_class| is specified. Mutually exclusive with
+    // |exclude_hardware_class|.
+    repeated string hardware_class = 8;
+
+    // List of ChromeOS hardware classes that will be excluded in this
+    // study. Each entry is treated as a substring of the actual device
+    // hardware_class, so "FOO" will match the client's hardware class
+    // "Device FOOBAR". If omitted, the study applies to all hardware classes
+    // unless |hardware_class| is specified. Mutually exclusive with
+    // |hardware_class|.
+    repeated string exclude_hardware_class = 9;
   }
 
   // Filtering criteria for this study. A study that is filtered out for a given