summaryrefslogtreecommitdiff
path: root/chromium/components/autofill/core/browser/proto/server.proto
blob: 8156146c450ff55d33e87a388718c6a1ab49de78 (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// Copyright 2016 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package autofill;

// The message is sent when a client needs to autofill forms on web pages and
// asks the server about known field types.
// Next available id: 11
message AutofillQueryContents {
  required string client_version = 1;
  repeated group Form = 2 {
    required fixed64 signature = 3;
    repeated group Field = 4 {
      required fixed32 signature = 5;
      optional string name = 8;
      optional string type = 9;  // Control type.
    }
  }
}

// This message is the result of an Autofill query. It holds the field type
// information.
// Next available id: 8
message AutofillQueryResponseContents {
  optional bool upload_required = 1;
  repeated group Field = 2 {
    required fixed32 overall_type_prediction = 3;
    // Detailed list of all possible predictions (including
    // |overall_type_prediction| as the first item).
    message FieldPrediction { optional fixed32 type = 1; }
    repeated FieldPrediction predictions = 7;
  }
}

// This message contains information about the field types in a single form.
// It is sent by the toolbar to contribute to the field type statistics.
// Next available id: 24
message AutofillUploadContents {
  required string client_version = 1;
  required fixed64 form_signature = 2;

  // True if the autofill feature was used to fill this form, false otherwise.
  required bool autofill_used = 3;

  // A string representing a bit array of what personal information items
  // the user has entered in the autofill settings dialog.
  // The corresponding bit is set if the user has that particular
  // item entered and is not set otherwise.
  required string data_present = 4;

  // List of the fields in the form and their types.
  repeated group Field = 5 {
    // Field identification inside the current form.
    required fixed32 signature = 6;

    // Type of the field, e.g. what type of personal information did the user
    // enter in that field before form submission. There is a predefined
    // enum of types located at
    // components/autofill/core/browser/field_types.h
    // AutoFillFieldType
    required fixed32 autofill_type = 7;

    // The value of the name attribute on the field, if present. Otherwise, the
    // value of the id attribute. See HTMLFormControlElement::nameForAutofill.
    optional string name = 8;

    // The value of the autocomplete attribute on the field, if present.
    optional string autocomplete = 9;

    // The type of input control for this field (e.g. text, textarea, email).
    optional string type = 10;

    enum PasswordGenerationType {
      NO_GENERATION = 0;
      AUTOMATICALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM = 1;
      AUTOMATICALLY_TRIGGERED_GENERATION_ON_CHANGE_PASSWORD_FORM = 2;
      MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM = 3;
      MANUALLY_TRIGGERED_GENERATION_ON_CHANGE_PASSWORD_FORM = 4;
      IGNORED_GENERATION_POPUP = 5;
    }
    // The type of password generation, if it happened.
    optional PasswordGenerationType generation_type = 17;

    enum FormClassifierOutcome {
      NO_OUTCOME = 0;
      NON_GENERATION_ELEMENT = 1;
      GENERATION_ELEMENT = 2;
    }
    // The outcome of HTML parsing based form classifier.
    optional FormClassifierOutcome form_classifier_outcome = 18;

    // The value of the class attribute on the field, if present.
    optional string css_classes = 19;

    // The properties mask (i.e. whether the field was autofilled, user
    // modified, etc.) See FieldPropertiesFlags.
    optional uint32 properties_mask = 20;

    // The value of the id attribute, if it differs from the name attribute.
    // Otherwise, this field is absent.
    optional string id = 21;

    // True iff the user changed generated password. If there was no generation,
    // the field is absent.
    optional bool generated_password_changed = 22;

    enum UsernameVoteType {
      NO_INFORMATION = 0;
      CREDENTIALS_REUSED = 1;
      USERNAME_OVERWRITTEN = 2;
      USERNAME_EDITED = 3;
      BASE_HEURISTIC = 4;
      HTML_CLASSIFIER = 5;
    }
    // The type of username vote. If |autofill_type| != USERNAME, then the field
    // is missed.
    optional UsernameVoteType username_vote_type = 23;
  }
  // Signature of the form action host (e.g. Hash64Bit("example.com")).
  optional fixed64 action_signature = 13;

  // Signature of the form which is used for password generation debugging.
  // Currently is used when password generated on a password field of a
  // registration form is used on a password field of a login form.
  optional fixed64 login_form_signature = 14;

  // Whether a form submission event was observed.
  optional bool submission = 15;

  // The form name.
  optional string form_name = 16;
}