Use SQLite for persistence and generate Rust protobuf bindings at build time. Add Docker image support for containerized deployment. Co-Authored-By: codex <[email protected]>
226 lines
8.8 KiB
Protocol Buffer
226 lines
8.8 KiB
Protocol Buffer
// 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 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;
|
|
|
|
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(1395353): 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;
|
|
}
|
|
|
|
// 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.
|
|
}
|
|
|
|
// 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.
|
|
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.
|
|
}
|
|
}
|