// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Sync protocol datatype extension for user events. // If you change or add any fields in this file, update proto_visitors.h and // potentially proto_enum_conversions.{h, cc}. syntax = "proto2"; option go_package = "./sync_pb"; option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; option optimize_for = LITE_RUNTIME; package sync_pb; import "gaia_password_reuse.proto"; message UserEventSpecifics { // Time of event, as measured by client in microseconds since Windows epoch. optional int64 event_time_usec = 1; // The |global_id| field of the associated navigation, if there is one. optional int64 navigation_id = 2; // On startup we generate a new random id to identify which FieldTrialEvents // other events belonged to. optional fixed64 session_id = 3; // 4-7 reserved for future scalars. // Used for testing and debugging EventLog system. message Test {} // Language detection output. message LanguageDetection { option deprecated = true; message Language { // ISO 639 language code will be used. optional string language_code = 1; // Whether the detected language is reliable, note this is determined by // the CLD3. optional bool is_reliable = 2; } // Top n languages. Typically we just log the top language, but for page // that we're not confident about, we may log up to 3 top languages in // descending order. repeated Language detected_languages = 1; // Adopted language code is the code of final determined language. // It will be stored only if it's different from the first detected // language. optional string adopted_language_code = 2; } // User translated a page or interacted with translate suggestion. message Translation { option deprecated = true; // Source language of the translation. optional string from_language_code = 1; // Target language of the translation. optional string to_language_code = 2; enum Interaction { UNKNOWN = 0; ACCEPT = 1; DECLINE = 2; // This happens when user scroll or click outside the UI without // translation. IGNORED = 3; // This happens when user choose to close the translation window without // translation. DISMISSED = 4; // User manually entered either language. // In this case, from_language_code and to_language_code will be user // chosen values. MANUAL = 5; // User choose to revert the translation, in this case, from_language_code // and to_language_code will be previous chosen values. TRANSLATION_REVERTED = 6; // Automatically triggered translation. // User sets always translate in user settings. AUTO_TRANSLATION_BY_PREF = 7; // User navigated through a click from a translated page. AUTO_TRANSLATION_BY_LINK = 8; // Failed to initialize the translate script, this can happen for iOS due // to CSPs. INITIALIZATION_ERROR = 9; } optional Interaction interaction = 3; } // Logged when the user logs into Google, and at least once per 28d. message GaiaPasswordCaptured { enum EventTrigger { UNSPECIFIED = 0; // Event added because user logged in. USER_LOGGED_IN = 1; // Event added because 28d timer fired. EXPIRED_28D_TIMER = 2; } optional EventTrigger event_trigger = 1; } message FlocIdComputed { enum EventTrigger { UNSPECIFIED = 0; // Event added because the floc id is computed for the 1st floc session. NEW = 1; // Event added because the floc id is re-computed due to a long period of // time has passed since the last computation. REFRESHED = 2; // Event added because the floc id is re-computed due to history deletion. HISTORY_DELETE = 3; } reserved 1; reserved "event_trigger"; // If not set, it means that the floc is disabled. optional uint64 floc_id = 2; } oneof event { Test test_event = 8; LanguageDetection language_detection_event = 10 [deprecated = true]; Translation translation_event = 11 [deprecated = true]; // Happens when a user types their Google account password on another site. GaiaPasswordReuse gaia_password_reuse_event = 104; GaiaPasswordCaptured gaia_password_captured_event = 15; FlocIdComputed floc_id_computed_event = 16; } reserved "field_trial_event"; reserved 9; reserved "user_consent"; reserved 12; }