blob: 13a88a1691a711bb7606f0d2d5ca58d1e000ba57 [file]
// Copyright 2018 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 datatype extension for the send tab to self items.
// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.
syntax = "proto2";
package sync_pb;
import "components/sync/protocol/encryption.proto";
import "components/sync/protocol/tab_navigation.proto";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
// Send Tab To Self list entry. This proto contains the fields synced to send
// a url across devices.
message SendTabToSelfSpecifics {
// A random unique identifier for each shared tab.
// Required.
optional string guid = 5;
// The name of the tab being shared.
optional string title = 1;
// The URL of the tab being shared.
// Required.
optional string url = 2;
// The time the tab was shared as measured by the client in microseconds since
// the windows epoch.
optional int64 shared_time_usec = 3;
// A non-unique but human readable name to describe this client, used in UI.
optional string device_name = 4;
// The stable Device_id of the device that this tab was shared with.
// Required.
optional string target_device_sync_cache_guid = 7;
// A boolean to designate if the shared tab been opened on the target device.
optional bool opened = 8;
// Whether the notification for this proto been dismissed.
optional bool notification_dismissed = 9;
reserved "navigation_time_usec";
reserved 6;
// Additional information about the sent tab, e.g. scroll position and form
// field data. Unless custom passphrase encryption is enabled, this is used
// only locally while on the wire, `encrypted_page_context` is used instead.
// New in M147.
optional PageContext page_context = 10;
// Encrypted version of the `page_context` field. Used only when custom
// passphrase encryption is NOT enabled.
// New in M149.
optional EncryptedData encrypted_page_context = 15;
// Navigation history for the shared tab. If not empty, the `url` and `title`
// fields above should match the navigation at `current_navigation_index`.
// These top-level fields are kept for backward compatibility and are
// currently duplicated.
// TODO(crbug.com/495336862): Deduplicate these fields once older clients are
// no longer supported.
repeated TabNavigation navigation = 11;
// Index of the current navigation in `navigation`.
optional int32 current_navigation_index = 12;
// Time (in microseconds since the Windows epoch) when the entry was first
// received by the target device's bridge. Set by the receiving device and
// synced back to the sender.
// New in M148.
optional int64 received_time_windows_epoch_micros = 13;
// Time (in microseconds since the Windows epoch) when the entry was opened
// on the target device. Set by the receiving device and synced back to the
// sender.
// New in M148.
optional int64 opened_time_windows_epoch_micros = 14;
}
message PageContext {
optional FormFieldInfo form_field_info = 1;
// Information about the scroll position on the page.
optional ScrollPosition scroll_position = 2;
}
message FormFieldInfo {
repeated FormField fields = 1;
}
message FormField {
enum AutofillFieldType {
NO_SERVER_DATA = 0;
UNKNOWN_TYPE = 1;
EMPTY_TYPE = 2;
NAME_FIRST = 3;
NAME_MIDDLE = 4;
NAME_LAST = 5;
NAME_MIDDLE_INITIAL = 6;
NAME_FULL = 7;
NAME_SUFFIX = 8;
EMAIL_ADDRESS = 9;
PHONE_HOME_NUMBER = 10;
PHONE_HOME_CITY_CODE = 11;
PHONE_HOME_COUNTRY_CODE = 12;
PHONE_HOME_CITY_AND_NUMBER = 13;
PHONE_HOME_WHOLE_NUMBER = 14;
ADDRESS_HOME_LINE1 = 15;
ADDRESS_HOME_LINE2 = 16;
ADDRESS_HOME_APT_NUM = 17;
ADDRESS_HOME_CITY = 18;
ADDRESS_HOME_STATE = 19;
ADDRESS_HOME_ZIP = 20;
ADDRESS_HOME_COUNTRY = 21;
CREDIT_CARD_NAME_FULL = 22;
CREDIT_CARD_NUMBER = 23;
CREDIT_CARD_EXP_MONTH = 24;
CREDIT_CARD_EXP_2_DIGIT_YEAR = 25;
CREDIT_CARD_EXP_4_DIGIT_YEAR = 26;
CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR = 27;
CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR = 28;
CREDIT_CARD_TYPE = 29;
CREDIT_CARD_VERIFICATION_CODE = 30;
COMPANY_NAME = 31;
MERCHANT_EMAIL_SIGNUP = 32;
MERCHANT_PROMO_CODE = 33;
PASSWORD = 34;
ACCOUNT_CREATION_PASSWORD = 35;
ADDRESS_HOME_STREET_ADDRESS = 36;
ADDRESS_HOME_SORTING_CODE = 37;
ADDRESS_HOME_DEPENDENT_LOCALITY = 38;
ADDRESS_HOME_LINE3 = 39;
NOT_ACCOUNT_CREATION_PASSWORD = 40;
USERNAME = 41;
USERNAME_AND_EMAIL_ADDRESS = 42;
NEW_PASSWORD = 43;
PROBABLY_NEW_PASSWORD = 44;
NOT_NEW_PASSWORD = 45;
CREDIT_CARD_NAME_FIRST = 46;
CREDIT_CARD_NAME_LAST = 47;
PHONE_HOME_EXTENSION = 48;
CONFIRMATION_PASSWORD = 49;
AMBIGUOUS_TYPE = 50;
SEARCH_TERM = 51;
PRICE = 52;
NOT_PASSWORD = 53;
SINGLE_USERNAME = 54;
NOT_USERNAME = 55;
ADDRESS_HOME_STREET_NAME = 56;
ADDRESS_HOME_HOUSE_NUMBER = 57;
ADDRESS_HOME_SUBPREMISE = 58;
ADDRESS_HOME_OTHER_SUBUNIT = 59;
NAME_LAST_FIRST = 60;
NAME_LAST_CONJUNCTION = 61;
NAME_LAST_SECOND = 62;
NAME_HONORIFIC_PREFIX = 63;
ADDRESS_HOME_ADDRESS = 64;
ADDRESS_HOME_ADDRESS_WITH_NAME = 65;
ADDRESS_HOME_FLOOR = 66;
PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX = 67;
PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX = 68;
PHONE_HOME_NUMBER_PREFIX = 69;
PHONE_HOME_NUMBER_SUFFIX = 70;
IBAN_VALUE = 71;
CREDIT_CARD_STANDALONE_VERIFICATION_CODE = 72;
NUMERIC_QUANTITY = 73;
ONE_TIME_CODE = 74;
DELIVERY_INSTRUCTIONS = 75;
ADDRESS_HOME_OVERFLOW = 76;
ADDRESS_HOME_LANDMARK = 77;
ADDRESS_HOME_OVERFLOW_AND_LANDMARK = 78;
ADDRESS_HOME_ADMIN_LEVEL2 = 79;
ADDRESS_HOME_STREET_LOCATION = 80;
ADDRESS_HOME_BETWEEN_STREETS = 81;
ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK = 82;
ADDRESS_HOME_STREET_LOCATION_AND_LOCALITY = 83;
ADDRESS_HOME_STREET_LOCATION_AND_LANDMARK = 84;
ADDRESS_HOME_DEPENDENT_LOCALITY_AND_LANDMARK = 85;
ADDRESS_HOME_BETWEEN_STREETS_1 = 86;
ADDRESS_HOME_BETWEEN_STREETS_2 = 87;
ADDRESS_HOME_HOUSE_NUMBER_AND_APT = 88;
SINGLE_USERNAME_FORGOT_PASSWORD = 89;
ADDRESS_HOME_APT = 90;
ADDRESS_HOME_APT_TYPE = 91;
LOYALTY_MEMBERSHIP_ID = 92;
SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES = 93;
ALTERNATIVE_FULL_NAME = 94;
ALTERNATIVE_GIVEN_NAME = 95;
ALTERNATIVE_FAMILY_NAME = 96;
DEPRECATED_NAME_LAST_PREFIX = 97;
DEPRECATED_NAME_LAST_CORE = 98;
PASSPORT_NUMBER = 99;
PASSPORT_ISSUING_COUNTRY = 100;
PASSPORT_EXPIRATION_DATE = 101;
PASSPORT_ISSUE_DATE = 102;
LOYALTY_MEMBERSHIP_PROGRAM = 103;
LOYALTY_MEMBERSHIP_PROVIDER = 104;
VEHICLE_LICENSE_PLATE = 105;
VEHICLE_VIN = 106;
VEHICLE_MAKE = 107;
VEHICLE_MODEL = 108;
DRIVERS_LICENSE_REGION = 109;
DRIVERS_LICENSE_NUMBER = 110;
DRIVERS_LICENSE_EXPIRATION_DATE = 111;
DRIVERS_LICENSE_ISSUE_DATE = 112;
VEHICLE_YEAR = 113;
VEHICLE_PLATE_STATE = 114;
EMAIL_OR_LOYALTY_MEMBERSHIP_ID = 115;
NATIONAL_ID_CARD_NUMBER = 116;
NATIONAL_ID_CARD_EXPIRATION_DATE = 117;
NATIONAL_ID_CARD_ISSUE_DATE = 118;
NATIONAL_ID_CARD_ISSUING_COUNTRY = 119;
KNOWN_TRAVELER_NUMBER = 120;
KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE = 121;
REDRESS_NUMBER = 122;
ADDRESS_HOME_ZIP_PREFIX = 123;
ADDRESS_HOME_ZIP_SUFFIX = 124;
FLIGHT_RESERVATION_FLIGHT_NUMBER = 125;
FLIGHT_RESERVATION_CONFIRMATION_CODE = 126;
FLIGHT_RESERVATION_TICKET_NUMBER = 127;
FLIGHT_RESERVATION_DEPARTURE_DATE = 128;
ADDRESS_HOME_ZIP_AND_CITY = 129;
ORDER_ID = 130;
ORDER_DATE = 131;
ORDER_MERCHANT_NAME = 132;
SHIPMENT_TRACKING_NUMBER = 133;
}
optional string id_attribute = 1;
optional string name_attribute = 2;
reserved 3;
optional string form_control_type = 4;
optional string value = 5;
// FormSignature is computed as the big-endian representation of the first 8
// bytes of the SHA-1 digest of the concatenated string:
// scheme://host&form_name&field_name_1&field_name_2...
// Sequences of 5+ consecutive digits are stripped from names to support
// dynamic IDs. Forms without action URLs fallback to the source page URL.
optional uint64 form_signature = 6;
// FieldSignature is computed as the big-endian representation of the first 4
// bytes of the SHA-1 digest of the concatenated string:
// field_name&field_control_type
optional uint32 field_signature = 7;
// TODO(crbug.com/485145029): Add regression tests for signature fields.
repeated AutofillFieldType autofill_types = 8;
}
message ScrollPosition {
// Text fragment data used for scroll position restoration on the target
// device.
optional TextFragmentData text_fragment = 1;
}
// Text fragment data used for scroll position restoration.
// https://wicg.github.io/scroll-to-text-fragment/
message TextFragmentData {
// The exact text to match.
// Corresponds to the 'textStart' parameter in the Text Fragment
// specification.
optional string text_start = 1;
// Optional: The end text for a range selection.
// Corresponds to 'textEnd'.
optional string text_end = 2;
// Optional: Prefix to ensure uniqueness of the match.
// Corresponds to 'prefix'.
optional string prefix = 3;
// Optional: Suffix to ensure uniqueness of the match.
// Corresponds to 'suffix'.
optional string suffix = 4;
}