1// Copyright (c) 2011 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 10syntax = "proto2"; 11 12option optimize_for = LITE_RUNTIME; 13option retain_unknown_fields = true; 14 15package sync_pb; 16 17import "sync.proto"; 18 19// Properties of autofill sync objects. 20 21// An AutofillProfile. 22message AutofillProfileSpecifics { 23 // User-defined label. 24 optional string label = 1; 25 26 optional string guid = 15; 27 28 // Contact info. 29 optional string name_first = 2; 30 optional string name_middle = 3; 31 optional string name_last = 4; 32 optional string email_address = 5; 33 optional string company_name = 6; 34 35 // Home address. 36 optional string address_home_line1 = 7; 37 optional string address_home_line2 = 8; 38 optional string address_home_city = 9; 39 optional string address_home_state = 10; 40 optional string address_home_zip = 11; 41 optional string address_home_country = 12; 42 43 // Phone + fax. 44 optional string phone_home_whole_number = 13; 45 optional string phone_fax_whole_number = 14; 46} 47 48message AutofillCreditCardSpecifics { 49 // User-defined label (e.g. Amazon Visa). 50 optional string label = 1; 51 52 // The cardholder's name. 53 optional string name_on_card = 2; 54 55 // The type, e.g. Mastercard. 56 optional string type = 3; 57 58 // The credit card number. 59 optional string card_number = 4; 60 61 // The expiration. 62 optional string expiration_month = 5; 63 optional string expiration_year = 6; 64 65 // The CVV. 66 optional string verification_code = 7; 67 68 // The label of the Autofill profile that contains the billing address. 69 optional string billing_address = 8; 70 71 // The label of the Autofill profile that contains the shipping address. 72 optional string shipping_address = 9; 73} 74 75message AutofillSpecifics { 76 // If any of these 3 fields are present, then all 3 should be, and it implies 77 // that this entity represents a classic autofill object. In this case, 78 // none of the autofill++ objects below should be present. 79 optional string name = 1; 80 optional string value = 2; 81 repeated int64 usage_timestamp = 3; 82 83 // An autofill++ profile object. If present, indicates this entity 84 // represents an AutofillProfile exclusively, and no other fields (such as 85 // name/value or credit_card) should be present. 86 optional AutofillProfileSpecifics profile = 4; 87 88 // An AutofillCreditCardSpecifics, encryped using Nigori (see Chromium's 89 // base/nigori.h for details). If present, indicates this entity represents 90 // an autofill++ CreditCard, and no other fields should be present. 91 // If encryption for autofill++ is not enabled, this is unused. See 92 // |credit_card| in that case. 93 optional bytes encrypted_credit_card = 5; 94 95 // If encryption for autofill++ is not enabled, this field stores the 96 // AutofillCreditCardSpecifics [instead of |encrypted_credit_card|]. 97 optional AutofillCreditCardSpecifics credit_card = 6; 98} 99 100extend EntitySpecifics { 101 optional AutofillSpecifics autofill = 31729; 102 optional AutofillProfileSpecifics autofill_profile = 63951; 103} 104