blob: d2031347a5249735b59c66c2a0865e7501e3dd45 [file] [log] [blame]
// 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.
//
// Cast-enabled device specific log data included in ChromeUserMetricsExtension.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
option java_outer_classname = "CastLogsProtos";
option java_package = "org.chromium.components.metrics";
package metrics;
// Next tag: 7
message CastLogsProto {
// Cast specific device information.
// Next tag: 7
message CastDeviceInfo {
// The product type of Cast device sent from Cast-enabled devices.
// Next tag: 8
enum CastProductType {
CAST_PRODUCT_TYPE_UNKNOWN = 0;
CAST_PRODUCT_TYPE_CHROMECAST = 1;
CAST_PRODUCT_TYPE_TV = 2;
CAST_PRODUCT_TYPE_AUDIO = 3;
CAST_PRODUCT_TYPE_ANDROID_TV = 4;
CAST_PRODUCT_TYPE_ASSISTANT = 5;
CAST_PRODUCT_TYPE_ANDROID_THINGS = 6;
CAST_PRODUCT_TYPE_CHROME_OS = 7;
}
optional CastProductType type = 1;
// The hardware revision of each product.
optional string hardware_revision = 2;
// The manufacturer of Cast device, this value is empty when the device
// is manufactured by Google.
optional string manufacturer = 3;
// The model of the Cast device.
optional string model = 4;
// The serial number.
optional string serial_number = 5;
// Hardware information of the device.
message HardwareInfo {
optional string color = 1;
optional string mic = 2;
optional string memory = 3;
optional string nand = 4;
}
optional HardwareInfo hardware_info = 6;
}
// The device sends this information at least once per day.
optional CastDeviceInfo cast_device_info = 1;
// Information about Cast connection between sender application and
// Cast-enabled device.
// Next tag: 4
message CastConnectionInfo {
optional fixed32 transport_connection_id = 1;
optional fixed32 virtual_connection_id = 2;
// This message describes a detail sender device and sdk. Those are
// parsed from the user agent string sent from sender sdk during connection.
// Next tag: 10
message SenderInfo {
// The identifier for the sender device, that is not tied any kind of
// device id outside of UMA, and this id is reset when user resets sender
// device.
optional fixed64 sender_device_id = 1;
// SDK type the sender application was using.
// Next tag: 3
enum SDKType {
SDK_UNKNOWN = 0;
// Native SDK type,
// E.G. Android sdk, iOS sdk.
SDK_NATIVE = 1;
// SDK via Chrome extension.
SDK_CHROME_EXTENSION = 2;
}
optional SDKType sdk_type = 2;
// Version of sender sdk/extension used to connection.
optional string version = 3;
// Chrome browser version where the Chrome extension running.
// Only Chrome extension sends this information.
optional string chrome_browser_version = 4;
// Platform of sender device.
// Next tag: 8
enum Platform {
// Any platform other then cases below.
PLATFORM_OTHER = 0;
PLATFORM_ANDROID = 1;
PLATFORM_IOS = 2;
PLATFORM_WINDOWS = 3;
PLATFORM_OSX = 4;
PLATFORM_CHROMEOS = 5;
PLATFORM_LINUX = 6;
// The sender is Cast device - including itself.
PLATFORM_CAST = 7;
}
optional Platform platform = 5;
// Sender device system version.
optional string system_version = 6;
// What type of connection type used to establish between sender and
// receiver.
enum ConnectionType {
CONNECTION_TYPE_UNKNOWN = 0;
CONNECTION_TYPE_LOCAL = 1;
CONNECTION_TYPE_RELAY = 2;
// A connection created by receiver itself internally.
CONNECTION_TYPE_INTERNAL = 3;
}
optional ConnectionType transport_connection_type = 7;
// Sender device model.
optional string model = 8;
// Last 2 bytes of the sender’s local IP addresses (both IP4/IP6) when
// the sender connected. This field stores ip fragment to last 2 bytes and
// first 2 bytes won't be used.
optional int32 sender_local_ip_fragment = 9;
}
optional SenderInfo sender_info = 3;
}
// Virtual connection established between sender application and Cast device.
repeated CastConnectionInfo cast_connection_info = 2;
// Stores Cast-enabled device specific events with a various context data.
// Next tag: 16
message CastEventProto {
// The name of the action, hashed by same logic used to hash user action
// event and histogram.
optional fixed64 name_hash = 1;
// The timestamp for the event, in milliseconds.
optional int64 time_msec = 2;
// The Cast receiver app ID related with this event.
optional fixed32 app_id = 3;
// The identifier for receiver application session.
optional fixed64 application_session_id = 4;
// Receiver side Cast SDK version.
optional fixed64 cast_receiver_version = 5;
// Cast MPL version.
optional fixed64 cast_mpl_version = 9;
// transport_connection_id related with this event.
optional fixed32 transport_connection_id = 6;
// virtual_connection_id related with this event.
optional fixed32 virtual_connection_id = 7;
// An optional value for the associated event
optional int64 value = 8;
// An optional value for the multi-room group uuid.
optional fixed64 group_uuid = 10;
// For application events associated with an assistant session, identifies
// the assistant conversation.
optional string conversation_key = 11;
// Request ID of V2 Application Protocol, identifies a pair of request
// and response.
optional fixed32 request_id = 12;
// Optional values associated with the event.
repeated float feature_vector = 15;
}
repeated CastEventProto cast_event = 3;
// Virtual release track for device.
optional fixed32 virtual_release_track = 4;
// Cast specific device information which is expected to change over time.
// Next tag: 4
message CastDeviceMutableInfo {
// This is the last type of reboot the device encountered
// Next tag: 9
enum RebootType {
REBOOT_TYPE_UNKNOWN = 0;
REBOOT_TYPE_FORCED = 1;
REBOOT_TYPE_API = 2;
REBOOT_TYPE_NIGHTLY = 3;
REBOOT_TYPE_OTA = 4;
REBOOT_TYPE_WATCHDOG = 5;
REBOOT_TYPE_PROCESS_MANAGER = 6;
REBOOT_TYPE_CRASH_UPLOADER = 7;
REBOOT_TYPE_FDR = 8;
}
optional RebootType last_reboot_type = 1;
// System version which the cast_shell is running.
optional fixed64 system_build_number = 2;
// An identifier that is specific to the combination of app and device, in
// this case the one used by backdrop.
optional string backdrop_app_device_id = 3;
}
optional CastDeviceMutableInfo cast_device_mutable_info = 5;
// Unique identifier that is randomly generated on first setup, on re-setup
// (FDR), and when user opted-in from opted-out status. If user is opted-out
// then this field should not be set.
// This is used for joining logs from Cast sender SDK to evaluate Cast
// sender/receiver communication quality.
optional fixed64 receiver_metrics_id = 6;
}