blob: ae35da2b44cb7b9d775f8be222876af0957f5366 [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// 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 autofill.
// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
// any fields in this file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;
package sync_pb;
import "sync.proto";
// Properties of autofill sync objects.
// An AutofillProfile.
message AutofillProfileSpecifics {
// User-defined label.
optional string label = 1;
optional string guid = 15;
// Contact info.
optional string name_first = 2;
optional string name_middle = 3;
optional string name_last = 4;
optional string email_address = 5;
optional string company_name = 6;
// Home address.
optional string address_home_line1 = 7;
optional string address_home_line2 = 8;
optional string address_home_city = 9;
optional string address_home_state = 10;
optional string address_home_zip = 11;
optional string address_home_country = 12;
// Phone + fax.
optional string phone_home_whole_number = 13;
optional string phone_fax_whole_number = 14;
}
message AutofillCreditCardSpecifics {
// User-defined label (e.g. Amazon Visa).
optional string label = 1;
// The cardholder's name.
optional string name_on_card = 2;
// The type, e.g. Mastercard.
optional string type = 3;
// The credit card number.
optional string card_number = 4;
// The expiration.
optional string expiration_month = 5;
optional string expiration_year = 6;
// The CVV.
optional string verification_code = 7;
// The label of the Autofill profile that contains the billing address.
optional string billing_address = 8;
// The label of the Autofill profile that contains the shipping address.
optional string shipping_address = 9;
}
message AutofillSpecifics {
// If any of these 3 fields are present, then all 3 should be, and it implies
// that this entity represents a classic autofill object. In this case,
// none of the autofill++ objects below should be present.
optional string name = 1;
optional string value = 2;
repeated int64 usage_timestamp = 3;
// An autofill++ profile object. If present, indicates this entity
// represents an AutofillProfile exclusively, and no other fields (such as
// name/value or credit_card) should be present.
optional AutofillProfileSpecifics profile = 4;
// An AutofillCreditCardSpecifics, encryped using Nigori (see Chromium's
// base/nigori.h for details). If present, indicates this entity represents
// an autofill++ CreditCard, and no other fields should be present.
// If encryption for autofill++ is not enabled, this is unused. See
// |credit_card| in that case.
optional bytes encrypted_credit_card = 5;
// If encryption for autofill++ is not enabled, this field stores the
// AutofillCreditCardSpecifics [instead of |encrypted_credit_card|].
optional AutofillCreditCardSpecifics credit_card = 6;
}
extend EntitySpecifics {
optional AutofillSpecifics autofill = 31729;
optional AutofillProfileSpecifics autofill_profile = 63951;
}