| // 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 {} |