| 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;
|
| +}
|
|
|