| // 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/ai_thread_specifics.proto"; |
| import "components/sync/protocol/contextual_task_specifics.proto"; |
| import "components/sync/protocol/encryption.proto"; |
| import "components/sync/protocol/app_list_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_valuable_specifics.proto"; |
| import "components/sync/protocol/autofill_valuable_metadata_specifics.proto"; |
| import "components/sync/protocol/account_setting_specifics.proto"; |
| import "components/sync/protocol/autofill_wallet_credential_specifics.proto"; |
| import "components/sync/protocol/autofill_wallet_usage_specifics.proto"; |
| import "components/sync/protocol/bookmark_specifics.proto"; |
| import "components/sync/protocol/collaboration_group_specifics.proto"; |
| import "components/sync/protocol/product_comparison_specifics.proto"; |
| import "components/sync/protocol/contact_info_specifics.proto"; |
| import "components/sync/protocol/cookie_specifics.proto"; |
| import "components/sync/protocol/device_info_specifics.proto"; |
| import "components/sync/protocol/dictionary_specifics.proto"; |
| import "components/sync/protocol/extension_setting_specifics.proto"; |
| import "components/sync/protocol/extension_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/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_sharing_invitation_specifics.proto"; |
| import "components/sync/protocol/password_specifics.proto"; |
| import "components/sync/protocol/plus_address_setting_specifics.proto"; |
| import "components/sync/protocol/plus_address_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/session_specifics.proto"; |
| import "components/sync/protocol/shared_comment_specifics.proto"; |
| import "components/sync/protocol/shared_tab_group_data_specifics.proto"; |
| import "components/sync/protocol/sharing_message_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"; |
| import "components/sync/protocol/shared_tab_group_account_data_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; |
| ThemeSpecifics theme = 41210; |
| 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; |
| DeviceInfoSpecifics device_info = 154522; |
| PriorityPreferenceSpecifics priority_preference = 163425; |
| DictionarySpecifics dictionary = 170540; |
| ManagedUserSettingSpecifics managed_user_setting = 186662; |
| AppListSpecifics app_list = 229170; |
| 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; |
| 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; |
| IncomingPasswordSharingInvitationSpecifics |
| incoming_password_sharing_invitation = 1141935; |
| OutgoingPasswordSharingInvitationSpecifics |
| outgoing_password_sharing_invitation = 1142081; |
| AutofillWalletCredentialSpecifics autofill_wallet_credential = 1164238; |
| SharedTabGroupDataSpecifics shared_tab_group_data = 1239418; |
| CollaborationGroupSpecifics collaboration_group = 1259076; |
| ProductComparisonSpecifics product_comparison = 1329438; |
| PlusAddressSpecifics plus_address = 1267844; |
| CookieSpecifics cookie = 1281100; |
| PlusAddressSettingSpecifics plus_address_setting = 1303742; |
| AutofillValuableSpecifics autofill_valuable = 1419865; |
| SharedTabGroupAccountDataSpecifics shared_tab_group_account_data = 1429255; |
| SharedCommentSpecifics shared_comment = 1484017; |
| AccountSettingSpecifics account_setting = 1438954; |
| AiThreadSpecifics ai_thread = 1517585; |
| ContextualTaskSpecifics contextual_task = 1518931; |
| AutofillValuableMetadataSpecifics autofill_valuable_metadata = 1520954; |
| // When adding a new type, follow the docs below and keep this comment as |
| // the last entry. |
| // https://www.chromium.org/developers/design-documents/sync/integration-checklist/ |
| |
| // No-longer-supported data types, in various stages of removal. |
| // TODO(crbug.com/40881888): Eventually, these should all become "reserved" |
| // fields, or at least use "EmptySpecifics". But some of them are still |
| // needed by the server, e.g. to support older clients. |
| EmptySpecifics app_notification = 45184 [deprecated = true]; |
| EmptySpecifics synced_notification = 153108 [deprecated = true]; |
| EmptySpecifics synced_notification_app_info = 235816 [deprecated = true]; |
| EmptySpecifics managed_user = 194582 [deprecated = true]; |
| ManagedUserSharedSettingSpecifics managed_user_shared_setting = 202026 |
| [deprecated = true]; |
| EmptySpecifics managed_user_allowlist = 306060 [deprecated = true]; |
| TypedUrlSpecifics typed_url = 40781 [deprecated = true]; |
| } |
| reserved 161496; |
| reserved "experiments"; |
| reserved 181534; |
| reserved "favicon_tracking"; |
| reserved 182019; |
| reserved "favicon_image"; |
| reserved 218175; |
| reserved "wifi_credential"; |
| reserved 223759; |
| reserved "article"; |
| reserved 545005; |
| reserved "mountain_share"; |
| reserved 1026052; |
| reserved "segmentation"; |
| reserved 1073150; |
| reserved "power_bookmark"; |
| } |
| |
| message EmptySpecifics {} |