summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/protocol/autofill_specifics.proto
blob: e700702aa8b6467037ea136454ac9b085abcebcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// Copyright (c) 2010 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.

syntax = "proto2";

// TODO(akalin): Re-enable this once LITE_RUNTIME supports preserving
// unknown fields.

// option optimize_for = LITE_RUNTIME;

package sync_pb;

import "sync.proto";

// Properties of autofill sync objects.

// An AutofillProfile.
message AutofillProfileSpecifics {
  // User-defined label.
  optional string label = 1;

  // 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;
}