| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 // | |
| 5 // Sync protocol datatype extension for autofill. | |
| 6 | |
| 7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change | |
| 8 // any fields in this file. | |
| 9 | |
| 10 syntax = "proto2"; | |
| 11 | |
| 12 option optimize_for = LITE_RUNTIME; | |
| 13 option retain_unknown_fields = true; | |
| 14 | |
| 15 package sync_pb; | |
| 16 | |
| 17 // Properties of autofill sync objects. | |
| 18 | |
| 19 // An AutofillProfile. | |
| 20 message AutofillProfileSpecifics { | |
| 21 optional string guid = 15; | |
| 22 optional string origin = 16; | |
| 23 optional int64 use_count = 22; | |
| 24 | |
| 25 // The time_t value of the last time this profile was used. This | |
| 26 // value makes sense wrt base::Time::To/FromTimeT, which measures | |
| 27 // from the Windows epoch. | |
| 28 optional int64 use_date = 23; | |
| 29 | |
| 30 // Contact info. | |
| 31 repeated string name_first = 2; | |
| 32 repeated string name_middle = 3; | |
| 33 repeated string name_last = 4; | |
| 34 repeated string name_full = 21; | |
| 35 repeated string email_address = 5; | |
| 36 optional string company_name = 6; | |
| 37 | |
| 38 // Address. | |
| 39 optional string address_home_line1 = 7; | |
| 40 optional string address_home_line2 = 8; | |
| 41 optional string address_home_city = 9; | |
| 42 optional string address_home_state = 10; | |
| 43 optional string address_home_zip = 11; | |
| 44 optional string address_home_country = 12; | |
| 45 | |
| 46 // Additional address fields for i18n. | |
| 47 optional string address_home_street_address = 17; | |
| 48 optional string address_home_sorting_code = 18; | |
| 49 optional string address_home_dependent_locality = 19; | |
| 50 optional string address_home_language_code = 20; | |
| 51 | |
| 52 // Phone. | |
| 53 repeated string phone_home_whole_number = 13; | |
| 54 | |
| 55 // Deprecated. | |
| 56 optional string label = 1 [deprecated=true]; | |
| 57 optional string phone_fax_whole_number = 14 [deprecated=true]; | |
| 58 } | |
| 59 | |
| 60 message AutofillSpecifics { | |
| 61 // If any of these 3 fields are present, then all 3 should be, and it implies | |
| 62 // that this entity represents a classic autofill object. In this case, | |
| 63 // none of the autofill++ objects below should be present. | |
| 64 optional string name = 1; | |
| 65 optional string value = 2; | |
| 66 repeated int64 usage_timestamp = 3; | |
| 67 | |
| 68 // An autofill++ profile object. If present, indicates this entity | |
| 69 // represents an AutofillProfile exclusively, and no other fields (such as | |
| 70 // name/value or credit_card) should be present. | |
| 71 optional AutofillProfileSpecifics profile = 4; | |
| 72 | |
| 73 // Obsolete credit card fields. | |
| 74 // optional bytes deprecated_encrypted_credit_card = 5; | |
| 75 // optional AutofillCreditCardSpecifics deprecated_credit_card = 6; | |
| 76 } | |
| 77 | |
| 78 message WalletMaskedCreditCard { | |
| 79 enum WalletCardStatus { | |
| 80 VALID = 0; | |
| 81 EXPIRED = 1; | |
| 82 } | |
| 83 | |
| 84 enum WalletCardType { | |
| 85 UNKNOWN = 0; | |
| 86 AMEX = 1; | |
| 87 DISCOVER = 2; | |
| 88 JCB = 3; | |
| 89 MAESTRO = 4; | |
| 90 MASTER_CARD = 5; | |
| 91 SOLO = 6; | |
| 92 SWITCH = 7; | |
| 93 VISA = 8; | |
| 94 } | |
| 95 | |
| 96 // Server-generated unique ID string. This is opaque to the client. | |
| 97 optional string id = 1; | |
| 98 | |
| 99 // What the server thinks of this card. | |
| 100 optional WalletCardStatus status = 2; | |
| 101 | |
| 102 optional string name_on_card = 3; | |
| 103 | |
| 104 optional WalletCardType type = 4; | |
| 105 | |
| 106 // Last 4 digits of the credit card number. | |
| 107 optional string last_four = 5; | |
| 108 | |
| 109 // Month number 1-12. | |
| 110 optional int32 exp_month = 6; | |
| 111 | |
| 112 // Four-digit year (e.g. 2017). | |
| 113 optional int32 exp_year = 7; | |
| 114 | |
| 115 // The WalletPostalAddress.id of the billing address. | |
| 116 optional string billing_address_id = 8; | |
| 117 } | |
| 118 | |
| 119 // Different than an AutofillProfile because this represents some known address | |
| 120 // on the server that is pulled down rather than synced between Chromes. | |
| 121 message WalletPostalAddress { | |
| 122 optional string id = 1; | |
| 123 | |
| 124 optional string recipient_name = 12; | |
| 125 optional string company_name = 2; | |
| 126 | |
| 127 // This is the street address, of which there may be multiple lines. This | |
| 128 // corresponds to "address_home_line[1|2] in the AutofillProfileSpecifics | |
| 129 // message above. In some locales there may be more than two lines. | |
| 130 repeated string street_address = 3; | |
| 131 | |
| 132 // Also known as "administrative area". This is normally the state or | |
| 133 // province in most countries. | |
| 134 optional string address_1 = 4; | |
| 135 | |
| 136 // Also known as "locality". In the US this is the city. | |
| 137 optional string address_2 = 5; | |
| 138 | |
| 139 // A sub-classification beneath the city, e.g. an inner-city district or | |
| 140 // suburb. Also known as "dependent_locality" | |
| 141 optional string address_3 = 6; | |
| 142 | |
| 143 // Used in certain countries. Also known as "sub_dependent_locality". | |
| 144 optional string address_4 = 7; | |
| 145 | |
| 146 optional string postal_code = 8; | |
| 147 | |
| 148 // Similar to the zipcode column, but used for businesses or organizations | |
| 149 // that might not be geographically contiguous. The canonical example is | |
| 150 // CEDEX in France. | |
| 151 optional string sorting_code = 9; | |
| 152 | |
| 153 optional string country_code = 10; | |
| 154 optional string language_code = 11; | |
| 155 | |
| 156 // Phone number. The format is unspecified and will be explicitly ignored. | |
| 157 optional string phone_number = 13; | |
| 158 } | |
| 159 | |
| 160 message AutofillWalletSpecifics { | |
| 161 enum WalletInfoType { | |
| 162 UNKNOWN = 0; | |
| 163 MASKED_CREDIT_CARD = 1; | |
| 164 POSTAL_ADDRESS = 2; | |
| 165 } | |
| 166 | |
| 167 optional WalletInfoType type = 1; | |
| 168 | |
| 169 // This field exists if and only if the "type" field equals to | |
| 170 // MASKED_CREDIT_CARD. | |
| 171 optional WalletMaskedCreditCard masked_card = 2; | |
| 172 | |
| 173 // This field exists if and only if the "type" field equals to ADDRESS. | |
| 174 optional WalletPostalAddress address = 3; | |
| 175 } | |
| 176 | |
| 177 // Wallet card and address usage information that can be synced. | |
| 178 message WalletMetadataSpecifics { | |
| 179 enum Type { | |
| 180 UNKNOWN = 0; | |
| 181 CARD = 1; | |
| 182 ADDRESS = 2; | |
| 183 } | |
| 184 | |
| 185 // The type of the Wallet metadata. | |
| 186 optional Type type = 1; | |
| 187 | |
| 188 // Base64 encoding of the unique ID string of the corresponding Wallet data. | |
| 189 // For Wallet cards, this value is server generated and opaque to Chrome. | |
| 190 // For Wallet addresses, this is a SHA1 hash of the following fields: | |
| 191 // | |
| 192 // - First name | |
| 193 // - Middle name | |
| 194 // - Last name | |
| 195 // - Company name | |
| 196 // - Street address | |
| 197 // - Dependent locality | |
| 198 // - City | |
| 199 // - State | |
| 200 // - Zip code | |
| 201 // - Sorting code | |
| 202 // - Country | |
| 203 // - Phone number | |
| 204 // - Language code | |
| 205 optional string id = 2; | |
| 206 | |
| 207 // The number of times that this Wallet card or address was used. | |
| 208 optional int64 use_count = 3; | |
| 209 | |
| 210 // The last use date of this Wallet card or address. Measured in microseconds | |
| 211 // since the Windows epoch (1601). | |
| 212 optional int64 use_date = 4; | |
| 213 } | |
| OLD | NEW |