|  | // 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. | 
|  | // | 
|  | // Sync protocol for communication between sync client and server. | 
|  |  | 
|  | // If you change or add any enums in this file, update | 
|  | // proto_enum_conversions.{h, cc}. | 
|  | // If you deprecate enum or enum values, mark any corresponding entry in | 
|  | // tools/metrics/histograms/enums.xml as <obsolete>. | 
|  |  | 
|  | syntax = "proto2"; | 
|  |  | 
|  | option java_multiple_files = true; | 
|  | option java_package = "org.chromium.components.sync.protocol"; | 
|  |  | 
|  | option optimize_for = LITE_RUNTIME; | 
|  |  | 
|  | package sync_pb; | 
|  |  | 
|  | message SyncEnums { | 
|  | // These events are sent by the DebugInfo class for singleton events. | 
|  | enum SingletonDebugEventType { | 
|  | // Connection status change. Note this gets generated even during a | 
|  | // successful connection. | 
|  | CONNECTION_STATUS_CHANGE = 1; | 
|  | // Client received an updated token. | 
|  | UPDATED_TOKEN = 2; | 
|  | // Cryptographer needs passphrase. | 
|  | PASSPHRASE_REQUIRED = 3; | 
|  | // Passphrase was accepted by cryptographer. | 
|  | PASSPHRASE_ACCEPTED = 4; | 
|  | // Sync Initialization is complete. | 
|  | INITIALIZATION_COMPLETE = 5; | 
|  | // Server sent stop syncing permanently. This event should never be seen by | 
|  | // the server in the absence of bugs. | 
|  | STOP_SYNCING_PERMANENTLY = 6; | 
|  | // Client has finished encrypting all data. | 
|  | // DEPRECATED_ENCRYPTION_COMPLETE = 7; | 
|  | // Client received an actionable error. | 
|  | ACTIONABLE_ERROR = 8; | 
|  | // Set of encrypted types has changed. | 
|  | ENCRYPTED_TYPES_CHANGED = 9; | 
|  | // The encryption passphrase state changed. | 
|  | PASSPHRASE_TYPE_CHANGED = 10; | 
|  | // A new keystore encryption token was persisted. | 
|  | KEYSTORE_TOKEN_UPDATED = 11; | 
|  | // The datatype manager has finished an at least partially successful | 
|  | // configuration and is once again syncing with the server. | 
|  | CONFIGURE_COMPLETE = 12; | 
|  | // A new cryptographer bootstrap token was generated. | 
|  | BOOTSTRAP_TOKEN_UPDATED = 13; | 
|  | // Cryptographer needs trusted vault decryption keys. | 
|  | TRUSTED_VAULT_KEY_REQUIRED = 14; | 
|  | // Cryptographer no longer needs trusted vault decryption keys. | 
|  | TRUSTED_VAULT_KEY_ACCEPTED = 15; | 
|  | } | 
|  |  | 
|  | // See ui/base/page_transition_types.h for detailed information on the | 
|  | // values of PageTransition and PageTransitionRedirectType below. | 
|  |  | 
|  | // Types of transitions between pages. | 
|  | enum PageTransition { | 
|  | LINK = 0; | 
|  | TYPED = 1; | 
|  | AUTO_BOOKMARK = 2; | 
|  | AUTO_SUBFRAME = 3; | 
|  | MANUAL_SUBFRAME = 4; | 
|  | GENERATED = 5; | 
|  | AUTO_TOPLEVEL = 6; | 
|  | FORM_SUBMIT = 7; | 
|  | RELOAD = 8; | 
|  | KEYWORD = 9; | 
|  | KEYWORD_GENERATED = 10; | 
|  | // The below two were mistakenly added but never properly used. They are | 
|  | // actually transition qualifiers, and are set independently of other | 
|  | // qualifiers and of the main transitions. See session_specifics.proto for | 
|  | // the list of synced transition qualifiers. | 
|  | // DEPRECATED_CHAIN_START = 12; | 
|  | // DEPRECATED_CHAIN_END = 13; | 
|  | } | 
|  |  | 
|  | // Types of redirects that triggered a transition. | 
|  | enum PageTransitionRedirectType { | 
|  | CLIENT_REDIRECT = 1; | 
|  | SERVER_REDIRECT = 2; | 
|  | } | 
|  |  | 
|  | enum ErrorType { | 
|  | SUCCESS = 0; | 
|  | // DEPRECATED_ACCESS_DENIED = 1; | 
|  | // Returned when the server and client disagree on the store birthday. This | 
|  | // should be interpreted as all local sync metadata requiring cleanup, | 
|  | // obviously including the locally-cached store birthday. | 
|  | NOT_MY_BIRTHDAY = 2; | 
|  | // Returned when the store has exceeded the allowed bandwidth utilization. | 
|  | THROTTLED = 3; | 
|  | // DEPRECATED_AUTH_EXPIRED = 4; | 
|  | // DEPRECATED_USER_NOT_ACTIVATED = 5; | 
|  | // DEPRECATED_AUTH_INVALID = 6; | 
|  | // A clear of the user data is pending (e.g. initiated by privacy request). | 
|  | // The client should come back later. | 
|  | CLEAR_PENDING = 7; | 
|  | // A transient error occurred (e.g. a backend timeout). The client should | 
|  | // try again later. | 
|  | TRANSIENT_ERROR = 8; | 
|  | // A server-side migration has taken place for one or more data types. The | 
|  | // client should clear the cache for these data types only and then re-sync | 
|  | // with a server. | 
|  | MIGRATION_DONE = 9; | 
|  | // An administrator disabled sync for this domain. | 
|  | DISABLED_BY_ADMIN = 10; | 
|  | // Deprecated in M50. | 
|  | // DEPRECATED_USER_ROLLBACK = 11; | 
|  | // Returned when the client wants to update several data types, but some of | 
|  | // them failed (e.g. throttled). | 
|  | PARTIAL_FAILURE = 12; | 
|  | // Returned when the server detects that this client's sync metadata is | 
|  | // obsolete. The client should reset local sync metadata and restart | 
|  | // syncing. | 
|  | CLIENT_DATA_OBSOLETE = 13; | 
|  | // Returned when the server detects that the encryption state (Nigori, | 
|  | // keystore keys) has been reset/overridden, which means the local | 
|  | // Nigori-related state is obsolete and should be cleared. | 
|  | // Introduced in M84. | 
|  | ENCRYPTION_OBSOLETE = 14; | 
|  | // Unknown value. This should never be explicitly used; it is the default | 
|  | // value when an out-of-date client parses a value it doesn't recognize. | 
|  | UNKNOWN = 100; | 
|  | } | 
|  |  | 
|  | enum Action { | 
|  | UPGRADE_CLIENT = 0;              // Upgrade the client to latest version. | 
|  | // DEPRECATED_CLEAR_USER_DATA_AND_RESYNC = 1; | 
|  | // DEPRECATED_ENABLE_SYNC_ON_ACCOUNT = 2; | 
|  | // DEPRECATED_STOP_AND_RESTART_SYNC = 3; | 
|  | // DEPRECATED_DISABLE_SYNC_ON_CLIENT = 4; | 
|  | UNKNOWN_ACTION = 5;              // This is the default. | 
|  | } | 
|  |  | 
|  | // Please keep in sync with chrome/android/java/.../ForeignSessionHelper.java | 
|  | enum DeviceType { | 
|  | TYPE_UNSET = 0; | 
|  | TYPE_WIN = 1; | 
|  | TYPE_MAC = 2; | 
|  | TYPE_LINUX = 3; | 
|  | TYPE_CROS = 4; | 
|  | TYPE_OTHER = 5; | 
|  | TYPE_PHONE = 6; | 
|  | TYPE_TABLET = 7; | 
|  | } | 
|  |  | 
|  | // This is the successor to GetUpdatesSource.  It merges the "normal mode" | 
|  | // values (LOCAL, NOTIFICATION and DATATYPE_REFRESH), which were never really | 
|  | // mutually exclusive to being with, into the GU_TRIGGER value.  It also | 
|  | // drops support for some old values that are not supported by newer clients. | 
|  | // | 
|  | // Mind the gaps: Some values are intentionally unused because we want to | 
|  | // keep the values in sync with GetUpdatesSource as much as possible.  Please | 
|  | // don't add any values < 12 unless there's a good reason for it. | 
|  | // | 
|  | // Introduced in M28. | 
|  | enum GetUpdatesOrigin { | 
|  | UNKNOWN_ORIGIN = 0;  // The source was not set by the caller. | 
|  | PERIODIC = 4;        // The source of the update was periodic polling. | 
|  | NEWLY_SUPPORTED_DATATYPE = 7;  // The client is in configuration mode | 
|  | // because it's syncing all datatypes, and | 
|  | // support for a new datatype was recently | 
|  | // released via a software auto-update. | 
|  | MIGRATION = 8;         // The client is in configuration mode because a | 
|  | // MIGRATION_DONE error previously returned by the | 
|  | // server necessitated resynchronization. | 
|  | NEW_CLIENT = 9;        // The client is in configuration mode because the | 
|  | // user enabled sync for the first time.  Not to be | 
|  | // confused with FIRST_UPDATE. | 
|  | RECONFIGURATION = 10;  // The client is in configuration mode because the | 
|  | // user opted to sync a different set of datatypes. | 
|  | GU_TRIGGER = 12;  // The client is in 'normal' mode.  It may have several | 
|  | // reasons for requesting an update.  See the per-type | 
|  | // GetUpdateTriggers message for more details. | 
|  | RETRY = 13;       // A retry GU to pick up updates missed by last GU due to | 
|  | // replication delay, missing hints, etc. | 
|  | PROGRAMMATIC = 14;  // A GU to programmatically enable/disable a | 
|  | // datatype, often due to error handling. | 
|  | } | 
|  | } |