// 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. // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change // any fields in this file. syntax = "proto2"; option optimize_for = LITE_RUNTIME; option retain_unknown_fields = true; package sync_pb; message SyncEnums { // These events are sent by the DebugInfo class for singleton events. enum SingletonDebugEventType { CONNECTION_STATUS_CHANGE = 1; // Connection status change. Note this // gets generated even during a successful // connection. UPDATED_TOKEN = 2; // Client received an updated token. PASSPHRASE_REQUIRED = 3; // Cryptographer needs passphrase. PASSPHRASE_ACCEPTED = 4; // Passphrase was accepted by cryptographer. INITIALIZATION_COMPLETE = 5; // Sync Initialization is complete. // |STOP_SYNCING_PERMANENTLY| event should never be seen by the server in // the absence of bugs. STOP_SYNCING_PERMANENTLY = 6; // Server sent stop syncing permanently. ENCRYPTION_COMPLETE = 7; // Client has finished encrypting all data. ACTIONABLE_ERROR = 8; // Client received an actionable error. ENCRYPTED_TYPES_CHANGED = 9; // Set of encrypted types has changed. // NOTE: until m25 bootstrap token updated also // shared this field (erroneously). PASSPHRASE_TYPE_CHANGED = 10; // The encryption passphrase state changed. KEYSTORE_TOKEN_UPDATED = 11; // A new keystore encryption token was // persisted. CONFIGURE_COMPLETE = 12; // The datatype manager has finished an // at least partially successful // configuration and is once again syncing // with the server. BOOTSTRAP_TOKEN_UPDATED = 13; // A new cryptographer bootstrap token was // generated. } // 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. // CHAIN_START = 12; Deprecated. // CHAIN_END = 13; Deprecated. } // Types of redirects that triggered a transition. enum PageTransitionRedirectType { CLIENT_REDIRECT = 1; SERVER_REDIRECT = 2; } enum ErrorType { SUCCESS = 0; ACCESS_DENIED = 1; // Returned when the user doesn't have access to // store (instead of HTTP 401). NOT_MY_BIRTHDAY = 2; // Returned when the server and client disagree on // the store birthday. THROTTLED = 3; // Returned when the store has exceeded the // allowed bandwidth utilization. AUTH_EXPIRED = 4; // Auth token or cookie has expired. USER_NOT_ACTIVATED = 5; // User doesn't have the Chrome bit set on that // Google Account. AUTH_INVALID = 6; // Auth token or cookie is otherwise invalid. CLEAR_PENDING = 7; // A clear of the user data is pending (e.g. // initiated by privacy request). Client should // come back later. TRANSIENT_ERROR = 8; // A transient error occured (eg. backend // timeout). Client should try again later. MIGRATION_DONE = 9; // Migration has finished for one or more data // types. Client should clear the cache for // these data types only and then re-sync with // a server. DISABLED_BY_ADMIN = 10; // An administrator disabled sync for this domain. USER_ROLLBACK = 11; // Client told to stop syncing and roll back. PARTIAL_FAILURE = 12; // Return when client want to update several data // types, but some of them failed(e.g. throttled). UNKNOWN = 100; // 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. } enum Action { UPGRADE_CLIENT = 0; // Upgrade the client to latest version. CLEAR_USER_DATA_AND_RESYNC = 1; // Clear user data from dashboard and // setup sync again. ENABLE_SYNC_ON_ACCOUNT = 2; // The administrator needs to enable sync // on the account. STOP_AND_RESTART_SYNC = 3; // Stop sync and set up sync again. DISABLE_SYNC_ON_CLIENT = 4; // Wipe the client of all sync data and // stop syncing. UNKNOWN_ACTION = 5; // This is the default. } enum DeviceType { 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. } }