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

Unified Diff: components/variations/proto/study.proto

Issue 23097007: Create variations target that depends on base. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 4 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: components/variations/proto/study.proto
===================================================================
--- components/variations/proto/study.proto (revision 0)
+++ components/variations/proto/study.proto (working copy)
@@ -0,0 +1,162 @@
+// 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: 12
+message Study {
+ // The name of the study. Should not contain spaces or special characters.
+ // Ex: "my_study"
+ required string name = 1;
+
+ // 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
+ //
+ // A study that has expired will be disabled, which will take precedence over
+ // a corresponding hardcoded field trial in the client.
+ //
+ // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z)
+ optional int64 expiry_date = 3;
+
+ // 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: 7
+ message Experiment {
+ // A named parameter value for this experiment.
+ //
+ // Next tag: 3
+ message Param {
+ // The name of the parameter.
+ optional string name = 1;
+
+ // The value of the parameter.
+ optional string value = 2;
+ }
+
+ // The name of the experiment within the study.
+ // Ex: "bucketA"
+ required string name = 1;
+
+ // The cut of the total probability taken for this experiment (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 for Google web
+ // properties.
+ optional uint64 google_web_experiment_id = 3;
+
+ // Optional id used to uniquely identify this experiment for Google Update.
+ optional uint64 google_update_experiment_id = 4;
+
+ // Optional name of a Chrome flag that, when present, causes this experiment
+ // to be forced. If the forcing_flag field is set, users will not be
+ // assigned to this experiment unless that flag is present in Chrome's
+ // command line.
+ optional string forcing_flag = 5;
+
+ // Parameter values for this experiment.
+ repeated Param param = 6;
+ }
+
+ // List of experiments in this study. This list should include the default /
+ // control experiment.
+ //
+ // 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;
+
+ // Possible Chrome release channels.
+ // See: http://dev.chromium.org/getting-involved/dev-channel
+ enum Channel {
+ // UNKNOWN value is defined here for the benefit of code using this enum
+ // type, but is not actually meant to be encoded in the protobuf.
+ UNKNOWN = -1;
+ CANARY = 0;
+ DEV = 1;
+ BETA = 2;
+ STABLE = 3;
+ }
+
+ // Possible Chrome operating system platforms.
+ enum Platform {
+ PLATFORM_WINDOWS = 0;
+ PLATFORM_MAC = 1;
+ PLATFORM_LINUX = 2;
+ PLATFORM_CHROMEOS = 3;
+ PLATFORM_ANDROID = 4;
+ PLATFORM_IOS = 5;
+ }
+
+ // Filtering criteria specifying whether this study is applicable to a given
+ // Chrome instance.
+ //
+ // Next tag: 7
+ 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
+ // Ex: 1330893974 (corresponds to 2012-03-04 20:46:14Z)
+ optional int64 start_date = 1;
+
+ // 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 = 2;
+
+ // 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 = 3;
+
+ // List of channels that will receive this study. If omitted, the study
+ // applies to all channels.
+ // Ex: [BETA, STABLE]
+ repeated Channel channel = 4;
+
+ // List of platforms that will receive this study. If omitted, the study
+ // applies to all platforms.
+ // Ex: [PLATFORM_WINDOWS, PLATFORM_MAC]
+ repeated Platform platform = 5;
+
+ // List of locales that will receive this study. If omitted, the study
+ // applies to all locales.
+ // Ex: ["en-US", "en-CA"]
+ repeated string locale = 6;
+ }
+
+ // Filtering criteria for this study. A study that is filtered out for a given
+ // client is equivalent to that study not being sent at all.
+ optional Filter filter = 10;
+
+ // Randomization seed to be used when |consistency| is set to PERMANENT. If
+ // not specified, randomization will be done using the trial name.
+ optional uint32 randomization_seed = 11;
+}

Powered by Google App Engine
This is Rietveld 408576698