// Copyright 2019 The Chromium Authors
// 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;
option java_package = "org.chromium.components.metrics";
option java_outer_classname = "UserDemographicsProtos";
package metrics;
// Limited demographics information about the user.
//
// This data is drawn from the signed-in user's GAIA id and is provided to
// Chrome via syncable priority pref.
//
// Next tag: 3
message UserDemographicsProto {
// The (noisy) year of birth specified by the user. The value reported in this
// field cannot safely be interpreted as the true value for the user; it may
// be offset by a randomly chosen number of years from [-2, +2].
optional int32 birth_year = 1;
// The supported gender identifiers. These values correspond to those offered
// in the "Gender" section of the Google Account settings. Note that these
// values deliberately do not address the rich spectrum of possible gender
// identities with high granularity because we do not want these values to be
// highly identifying.
//
// Values from this enum are both sent to Chrome via Chrome Sync, and
// selectively forwarded from Chrome to UMA logs.
enum Gender {
// The default value for clients that do not have any gender information.
GENDER_UNKNOWN = 0;
// The user specified that they prefer to be referred to as male.
GENDER_MALE = 1;
// The user specified that they prefer to be referred to as female.
GENDER_FEMALE = 2;
// The user specified that they prefer not to disclose a gender or the user
// provided a custom gender identifier. This value may be synced to Chrome,
// but it is not transmitted to UMA because the population size is
// relatively small vs MALE/FEMALE and thus may be highly identifying.
// Instead, these users will not submit any demographics, blending them into
// the GENDER_UNKNOWN group (which is large).
GENDER_CUSTOM_OR_OTHER = 3;
}
// The gender specified by the user. If the user's gender is unknown or non-
// binary, this field will be omitted, corresponding to a default
// value of GENDER_UNKNOWN.
optional Gender gender = 2;
}