1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
|
// Copyright 2012 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 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. Deprecated 11/2021.
DEPRECATED_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.
DEPRECATED_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;
// DEPRECATED_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.
}
// New enums to describe the device type were introduced; OsType and
// FormFactor. Deprecated 12/2022.
// TODO(crbug.com/40882073): Remove deprecated values from DeviceType enum.
enum DeviceType {
TYPE_UNSET = 0 [deprecated = true];
TYPE_WIN = 1 [deprecated = true];
TYPE_MAC = 2 [deprecated = true];
TYPE_LINUX = 3 [deprecated = true];
TYPE_CROS = 4 [deprecated = true];
TYPE_OTHER = 5 [deprecated = true];
TYPE_PHONE = 6 [deprecated = true];
TYPE_TABLET = 7 [deprecated = true];
}
// Types of device OS.
enum OsType {
OS_TYPE_UNSPECIFIED = 0;
OS_TYPE_WINDOWS = 1;
OS_TYPE_MAC = 2;
OS_TYPE_LINUX = 3;
OS_TYPE_CHROME_OS_ASH = 4;
OS_TYPE_ANDROID = 5;
OS_TYPE_IOS = 6;
OS_TYPE_CHROME_OS_LACROS = 7;
OS_TYPE_FUCHSIA = 8;
}
// Types of device form factors.
enum DeviceFormFactor {
DEVICE_FORM_FACTOR_UNSPECIFIED = 0;
DEVICE_FORM_FACTOR_DESKTOP = 1;
DEVICE_FORM_FACTOR_PHONE = 2;
DEVICE_FORM_FACTOR_TABLET = 3;
DEVICE_FORM_FACTOR_AUTOMOTIVE = 4;
DEVICE_FORM_FACTOR_WEARABLE = 5;
DEVICE_FORM_FACTOR_TV = 6;
}
// Types of browsers; used for history-related data types.
enum BrowserType {
BROWSER_TYPE_UNKNOWN = 0;
TYPE_TABBED = 1; // A normal tabbed window.
TYPE_POPUP = 2; // A popup window.
TYPE_CUSTOM_TAB = 3; // A custom tab within an app.
TYPE_AUTH_TAB = 4; // A auth-dedicated custom tab within an app.
}
// The "password state" is the presence/absence of a password field on a
// website; used for history-related data types.
enum PasswordState {
PASSWORD_STATE_UNKNOWN = 0;
NO_PASSWORD_FIELD = 1;
HAS_PASSWORD_FIELD = 2;
}
// 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.
// LINT.IfChange(SyncGetUpdatesOrigin)
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.
// DEPRECATED_RETRY = 13;
PROGRAMMATIC = 14; // A GU to programmatically enable/disable a
// datatype, often due to error handling.
reserved 13;
reserved "RETRY";
}
// LINT.ThenChange(/tools/metrics/histograms/metadata/sync/enums.xml:SyncGetUpdatesOrigin)
// Type of message sent to the receiving device for the send tab to self
// feature.
enum SendTabReceivingType {
// Send tab notification can be received as an in-app message. This is the
// default value.
SEND_TAB_RECEIVING_TYPE_CHROME_OR_UNSPECIFIED = 0;
// Send tab notification can be received as a push notification and/or
// in-app message.
SEND_TAB_RECEIVING_TYPE_CHROME_AND_PUSH_NOTIFICATION = 1;
}
}
|