| Index: components/autofill/core/common/password_form.h | 
| diff --git a/components/autofill/core/common/password_form.h b/components/autofill/core/common/password_form.h | 
| index 8bcf44850a8d6f537694bcedfcddb219b24931a7..bb4611e5ea765eccbfbc891246e79a093036f549 100644 | 
| --- a/components/autofill/core/common/password_form.h | 
| +++ b/components/autofill/core/common/password_form.h | 
| @@ -84,6 +84,20 @@ struct PasswordForm { | 
| LAYOUT_LAST = LAYOUT_LOGIN_AND_SIGNUP | 
| }; | 
|  | 
| +  // Events observed by the Password Manager that indicate either that a form is | 
| +  // potentially being submitted, or that a form has already been successfully | 
| +  // submitted. Recorded into a UMA histogram, so order of enumerators should | 
| +  // not be changed. | 
| +  enum class SubmissionIndicatorEvent { | 
| +    NONE, | 
| +    HTML_FORM_SUBMISSION, | 
| +    SAME_DOCUMENT_NAVIGATION, | 
| +    XHR_SUCCEEDED, | 
| +    FRAME_DETACHED, | 
| +    MANUAL_SAVE, | 
| +    SUBMISSION_INDICATOR_EVENT_COUNT | 
| +  }; | 
| + | 
| // The "Realm" for the sign-on. This is scheme, host, port for SCHEME_HTML. | 
| // Dialog based forms also contain the HTTP realm. Android based forms will | 
| // contain a string of the form "android://<hash of cert>@<package name>" | 
| @@ -278,6 +292,11 @@ struct PasswordForm { | 
| // If true, this form looks like SignUp form according to local heuristics. | 
| bool does_look_like_signup_form; | 
|  | 
| +  // The type of the event that was taken as an indication that this form is | 
| +  // being or has already been submitted. This field is not persisted and filled | 
| +  // out only for submitted forms. | 
| +  SubmissionIndicatorEvent submission_event; | 
| + | 
| // Return true if we consider this form to be a change password form. | 
| // We use only client heuristics, so it could include signup forms. | 
| bool IsPossibleChangePasswordForm() const; | 
| @@ -315,6 +334,9 @@ base::string16 OtherPossibleUsernamesToString( | 
| std::ostream& operator<<(std::ostream& os, PasswordForm::Layout layout); | 
| std::ostream& operator<<(std::ostream& os, const PasswordForm& form); | 
| std::ostream& operator<<(std::ostream& os, PasswordForm* form); | 
| +std::ostream& operator<<( | 
| +    std::ostream& os, | 
| +    PasswordForm::SubmissionIndicatorEvent submission_event); | 
|  | 
| }  // namespace autofill | 
|  | 
|  |