| // 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; |
| |
| import "password_requirements.proto"; |
| |
| // 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: 10 |
| 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 { |
| // The predicted field type. |
| optional fixed32 type = 1; |
| |
| // True if the serverside classification believes that the field |
| // may be pre-filled with a placeholder in the value attribute. |
| optional bool may_use_prefilled_placeholder = 2; |
| } |
| repeated FieldPrediction predictions = 7; |
| |
| // For fields of type NEW_PASSWORD and ACCOUNT_CREATION_PASSWORD, this may |
| // specify requirements for the generation of passwords. |
| optional PasswordRequirementsSpec password_requirements = 9; |
| } |
| } |
| |
| // 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: 30 |
| 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 |
| repeated 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; |
| |
| // 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 VoteType { |
| NO_INFORMATION = 0; |
| // A credential saved on one form (typically a signup form) was used on a |
| // login form. The vote applies to the first (signup) form. |
| CREDENTIALS_REUSED = 1; |
| // When reusing a credential, the username value is not the saved |
| // username, but another value, which appeared on the form where we saved. |
| // The correct field is voted for. |
| USERNAME_OVERWRITTEN = 2; |
| // In the save prompt, the user corrected the username value to another |
| // value from the form. The new field is voted for. |
| USERNAME_EDITED = 3; |
| // The username field was detected by the base heuristic (take the last |
| // non-password field before the first password field). The value is not |
| // used at this point. |
| BASE_HEURISTIC = 4; |
| // The username field was detected by HTML-based detector. The value is |
| // not used at this point. |
| HTML_CLASSIFIER = 5; |
| // A saved credential was used for the first time on a submitted form. The |
| // vote applies to the form being submitted. |
| FIRST_USE = 6; |
| } |
| |
| // The type of password-related vote. If |autofill_type| is not a USERNAME |
| // or any PASSWORD vote, then the field is absent. This field describes the |
| // context of the vote. |
| optional VoteType 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; |
| |
| // True iff the the non-obfuscated password values were shown to the user. |
| optional bool passwords_revealed = 24; |
| |
| // The section of noisified data about password. |
| // Upload only one of character class attributes (|password_has_*|). Noisified |
| // length is always uploaded. |
| // Upload only when a password is saved. |
| // Used to adjust the password generator's settings to site's requirements. |
| |
| // Whether the password has any lowercase letter. |
| optional bool password_has_lowercase_letter = 25; |
| |
| // Whether the password has any uppercase letter. |
| optional bool password_has_uppercase_letter = 26; |
| |
| // Whether the password has any digit. |
| optional bool password_has_numeric = 27; |
| |
| // Whether the password has any special symbol. |
| optional bool password_has_special_symbol = 28; |
| |
| // Noisifed password length. |
| optional uint32 password_length = 29; |
| // The end of the section of password attributes. |
| } |