Port Brave Sync server to Rust
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]>
This commit is contained in:
commit
28826af88d
93 files changed
+11666
No files matched your search
@@ -0,0 +1,225 @@
|
||||
// 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.
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user