blob: 97c0e080cdacc20ce79d22dc081f4fef6fa55eae [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
package sync_pb;
import "components/sync/protocol/encryption.proto";
import "components/sync/protocol/app_list_specifics.proto";
import "components/sync/protocol/app_notification_specifics.proto";
import "components/sync/protocol/app_setting_specifics.proto";
import "components/sync/protocol/app_specifics.proto";
import "components/sync/protocol/arc_package_specifics.proto";
import "components/sync/protocol/autofill_specifics.proto";
import "components/sync/protocol/autofill_offer_specifics.proto";
import "components/sync/protocol/autofill_wallet_usage_specifics.proto";
import "components/sync/protocol/bookmark_specifics.proto";
import "components/sync/protocol/contact_info_specifics.proto";
import "components/sync/protocol/device_info_specifics.proto";
import "components/sync/protocol/dictionary_specifics.proto";
import "components/sync/protocol/experiments_specifics.proto";
import "components/sync/protocol/extension_setting_specifics.proto";
import "components/sync/protocol/extension_specifics.proto";
import "components/sync/protocol/favicon_image_specifics.proto";
import "components/sync/protocol/favicon_tracking_specifics.proto";
import "components/sync/protocol/history_delete_directive_specifics.proto";
import "components/sync/protocol/history_specifics.proto";
import "components/sync/protocol/managed_user_setting_specifics.proto";
import "components/sync/protocol/managed_user_shared_setting_specifics.proto";
import "components/sync/protocol/managed_user_specifics.proto";
import "components/sync/protocol/nigori_specifics.proto";
import "components/sync/protocol/os_preference_specifics.proto";
import "components/sync/protocol/os_priority_preference_specifics.proto";
import "components/sync/protocol/password_specifics.proto";
import "components/sync/protocol/power_bookmark_specifics.proto";
import "components/sync/protocol/preference_specifics.proto";
import "components/sync/protocol/printer_specifics.proto";
import "components/sync/protocol/printers_authorization_server_specifics.proto";
import "components/sync/protocol/priority_preference_specifics.proto";
import "components/sync/protocol/reading_list_specifics.proto";
import "components/sync/protocol/saved_tab_group_specifics.proto";
import "components/sync/protocol/search_engine_specifics.proto";
import "components/sync/protocol/security_event_specifics.proto";
import "components/sync/protocol/send_tab_to_self_specifics.proto";
import "components/sync/protocol/segmentation_specifics.proto";
import "components/sync/protocol/session_specifics.proto";
import "components/sync/protocol/sharing_message_specifics.proto";
import "components/sync/protocol/synced_notification_app_info_specifics.proto";
import "components/sync/protocol/synced_notification_specifics.proto";
import "components/sync/protocol/theme_specifics.proto";
import "components/sync/protocol/typed_url_specifics.proto";
import "components/sync/protocol/user_consent_specifics.proto";
import "components/sync/protocol/user_event_specifics.proto";
import "components/sync/protocol/web_apk_specifics.proto";
import "components/sync/protocol/web_app_specifics.proto";
import "components/sync/protocol/webauthn_credential_specifics.proto";
import "components/sync/protocol/wifi_configuration_specifics.proto";
import "components/sync/protocol/workspace_desk_specifics.proto";
message EntitySpecifics {
// If a datatype is encrypted, this field will contain the encrypted
// original EntitySpecifics. The extension for the datatype will continue
// to exist, but contain only the default values.
// Note that currently passwords employ their own legacy encryption scheme and
// do not use this field.
optional EncryptedData encrypted = 1;
// To add new datatype-specific fields to the protocol, extend
// EntitySpecifics. First, pick a non-colliding tag number by
// picking a Cr-Commit-Position of one of your past commits
// to src.chromium.org. Then, in a different protocol buffer
// definition, define your message type, and add an optional field
// to the list below using the unique tag value you selected.
//
// optional MyDatatypeSpecifics my_datatype = 32222;
//
// where:
// - 32222 is the non-colliding tag number you picked earlier.
// - MyDatatypeSpecifics is the type (probably a message type defined
// in your new .proto file) that you want to associate with each
// object of the new datatype.
// - my_datatype is the field identifier you'll use to access the
// datatype specifics from the code.
//
// Server implementations are obligated to preserve the contents of
// EntitySpecifics when it contains unrecognized fields. In this
// way, it is possible to add new datatype fields without having
// to update the server.
//
// Note: The tag selection process is based on legacy versions of the
// protocol which used protobuf extensions. We have kept the process
// consistent as the old values cannot change. The 5+ digit nature of the
// tags also makes them recognizable (individually and collectively) from
// noise in logs and debugging contexts, and creating a divergent subset of
// tags would only make things a bit more confusing.
oneof specifics_variant {
AutofillSpecifics autofill = 31729;
BookmarkSpecifics bookmark = 32904;
PreferenceSpecifics preference = 37702;
TypedUrlSpecifics typed_url = 40781;
ThemeSpecifics theme = 41210;
// TODO(crbug.com/1012648): |app_notification| isn't used by the client
// anymore, but the server still needs it for now.
AppNotification app_notification = 45184 [deprecated = true];
PasswordSpecifics password = 45873;
NigoriSpecifics nigori = 47745;
ExtensionSpecifics extension = 48119;
AppSpecifics app = 48364;
SessionSpecifics session = 50119;
AutofillProfileSpecifics autofill_profile = 63951;
SearchEngineSpecifics search_engine = 88610;
ExtensionSettingSpecifics extension_setting = 96159;
AppSettingSpecifics app_setting = 103656;
HistoryDeleteDirectiveSpecifics history_delete_directive = 150251;
// TODO(crbug.com/1012648): |synced_notification| and
// |synced_notification_app_info| aren't used by the client anymore, but the
// server still needs them for now.
SyncedNotificationSpecifics synced_notification = 153108
[deprecated = true];
SyncedNotificationAppInfoSpecifics synced_notification_app_info = 235816
[deprecated = true];
DeviceInfoSpecifics device_info = 154522;
// TODO(crbug.com/1009361): |experiments| isn't used by the client anymore,
// but the server still needs it for now.
ExperimentsSpecifics experiments = 161496 [deprecated = true];
PriorityPreferenceSpecifics priority_preference = 163425;
DictionarySpecifics dictionary = 170540;
FaviconTrackingSpecifics favicon_tracking = 181534 [deprecated = true];
FaviconImageSpecifics favicon_image = 182019 [deprecated = true];
ManagedUserSettingSpecifics managed_user_setting = 186662;
// TODO(tschumann): Remove once server-side dependencies are resolved.
ManagedUserSpecifics managed_user = 194582 [deprecated = true];
// TODO(tschumann): Remove once server-side dependencies are resolved.
ManagedUserSharedSettingSpecifics managed_user_shared_setting = 202026
[deprecated = true];
AppListSpecifics app_list = 229170;
EmptySpecifics managed_user_allowlist = 306060 [deprecated = true];
AutofillWalletSpecifics autofill_wallet = 306270;
WalletMetadataSpecifics wallet_metadata = 330441;
ArcPackageSpecifics arc_package = 340906;
PrinterSpecifics printer = 410745;
ReadingListSpecifics reading_list = 411028;
UserEventSpecifics user_event = 455206;
UserConsentSpecifics user_consent = 556014;
SendTabToSelfSpecifics send_tab_to_self = 601980;
SecurityEventSpecifics security_event = 600372;
WebApkSpecifics web_apk = 1117170;
WebAppSpecifics web_app = 673225;
WifiConfigurationSpecifics wifi_configuration = 662827;
OsPreferenceSpecifics os_preference = 702141;
OsPriorityPreferenceSpecifics os_priority_preference = 703915;
SharingMessageSpecifics sharing_message = 728866;
AutofillOfferSpecifics autofill_offer = 774329;
WorkspaceDeskSpecifics workspace_desk = 874841;
// This is not included in model_type.h because it's currently only used by
// the server and by Play Services. (crbug.com/1223853)
WebauthnCredentialSpecifics webauthn_credential = 895275;
HistorySpecifics history = 963985;
PrintersAuthorizationServerSpecifics printers_authorization_server = 974304;
SavedTabGroupSpecifics saved_tab_group = 1004874;
AutofillWalletUsageSpecifics autofill_wallet_usage = 1033580;
ContactInfoSpecifics contact_info = 1034378;
SegmentationSpecifics segmentation = 1026052;
PowerBookmarkSpecifics power_bookmark = 1073150;
}
reserved 218175;
reserved "wifi_credential";
reserved 223759;
reserved "article";
reserved 545005;
reserved "mountain_share";
}
message EmptySpecifics {}