// Copyright 2014 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;

option java_outer_classname = "ChromeUserMetricsExtensionProtos";
option java_package = "org.chromium.components.metrics";

package metrics;

import "cast_logs.proto";
import "chrome_os_app_list_launch_event.proto";
import "histogram_event.proto";
import "memory_leak_report.proto";
import "omnibox_event.proto";
import "perf_data.proto";
import "printer_event.proto";
import "reporting_info.proto";
import "sampled_profile.proto";
import "system_profile.proto";
import "trace_log.proto";
import "translate_event.proto";
import "user_action_event.proto";

// Next tag: 21
message ChromeUserMetricsExtension {
  // The product (i.e. end user application) for a given UMA log.
  enum Product {
    // Google Chrome product family.
    CHROME = 0;

    // UMA metrics from Android Webview.
    ANDROID_WEBVIEW = 20;

    // Cast receivers, e.g. Chromecast
    CAST = 35;
  }
  // The product corresponding to this log. The field type is int32 instead of
  // Product so that downstream users of the Chromium metrics component can
  // introduce products without needing to make changes to the Chromium code
  // (though they still need to add the new product to the server-side enum).
  // Note: The default value is Chrome, so Chrome products will not transmit
  // this field.
  optional int32 product = 10 [default = 0];

  // The id of the client install that generated these events.
  //
  // For Chrome clients, this id is unique to a top-level (one level above the
  // "Default" directory) Chrome user data directory [1], and so is shared among
  // all Chrome user profiles contained in this user data directory.
  // An id of 0 is reserved for test data (monitoring and internal testing) and
  // should normally be ignored in analysis of the data.
  // [1] http://www.chromium.org/user-experience/user-data-directory
  optional fixed64 client_id = 1;

  // The session id for this user.
  // Values such as tab ids are only meaningful within a particular session.
  // The client keeps track of the session id and sends it with each event.
  // The session id is simply an integer that is incremented each time the user
  // relaunches Chrome.
  optional int32 session_id = 2;

  // Information about the user's browser and system configuration.
  optional SystemProfileProto system_profile = 3;

  // This message will log one or more of the following event types:
  repeated UserActionEventProto user_action_event = 4;
  repeated OmniboxEventProto omnibox_event = 5;
  repeated HistogramEventProto histogram_event = 6;
  repeated TranslateEventProto translate_event = 15;
  repeated PrinterEventProto printer_event = 16;
  repeated ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;

  // Deprecated: use |sampled_profile| instead.
  repeated PerfDataProto perf_data = 8 [deprecated = true];

  // A list of all collected sample-based profiles since the last UMA upload.
  repeated SampledProfile sampled_profile = 11;

  // Additional data related with Cast-enabled devices.
  optional CastLogsProto cast_logs = 12;

  // Memory leak reports generated since the last UMA upload.
  repeated MemoryLeakReportProto memory_leak_report = 13;

  // The ReportingInfo message sent in the X-Chrome-UMA-ReportingInfo header.
  // Copied in by the receiving server.
  optional ReportingInfo reporting_info = 17;

  // The Chrome traces obtained during the current session. The start time,
  // duration and details depend on the experiment triggers in the current
  // session. This field is uploaded as independent logs, which contain only
  // session id and core system profile fields, apart from this field.
  repeated TraceLog trace_log = 19;
}
