Index: components/password_manager/core/browser/password_form_manager.cc |
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc |
index 247d539498daa6df089b315eec3ee742a2dfb698..765afaa33f9c1e1718fa3264bbbfbd948fdd5cf9 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -291,6 +291,7 @@ void PasswordFormManager::ProvisionallySave( |
} |
provisionally_saved_form_ = std::move(mutable_provisionally_saved_form); |
other_possible_username_action_ = action; |
+ does_look_like_signup_form_ = credentials.does_look_like_signup_form; |
if (HasCompletedMatching()) |
CreatePendingCredentials(); |
@@ -618,8 +619,14 @@ void PasswordFormManager::SaveAsNewLogin() { |
UploadGeneratedVote(); |
} else if (pending_credentials_.times_used == 0) { |
if (!observed_form_.IsPossibleChangePasswordFormWithoutUsername()) |
- UploadPasswordForm(pending_credentials_.form_data, base::string16(), |
- autofill::PASSWORD, std::string()); |
+ UploadPasswordForm(pending_credentials_.form_data, |
+ does_look_like_signup_form_ |
+ ? pending_credentials_.username_element |
+ : base::string16(), |
+ does_look_like_signup_form_ |
+ ? autofill::PROBABLY_ACCOUNT_CREATION_PASSWORD |
+ : autofill::PASSWORD, |
+ std::string()); |
} else { |
if (!observed_form_.IsPossibleChangePasswordFormWithoutUsername()) |
SendAutofillVotes(observed_form_, &pending_credentials_); |
@@ -819,6 +826,7 @@ bool PasswordFormManager::UploadPasswordForm( |
const autofill::ServerFieldType& password_type, |
const std::string& login_form_signature) { |
DCHECK(password_type == autofill::PASSWORD || |
+ password_type == autofill::PROBABLY_ACCOUNT_CREATION_PASSWORD || |
password_type == autofill::ACCOUNT_CREATION_PASSWORD || |
autofill::NOT_ACCOUNT_CREATION_PASSWORD); |
DCHECK(!has_generated_password_); |