Chromium Code Reviews| Index: components/password_manager/core/browser/password_manager.cc |
| diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc |
| index 0de914fc7b131e4d90b9f641741ff031db95053d..a7e13eaab4482af9004b780c4d96f276a7bb9365 100644 |
| --- a/components/password_manager/core/browser/password_manager.cc |
| +++ b/components/password_manager/core/browser/password_manager.cc |
| @@ -554,7 +554,9 @@ bool PasswordManager::CanProvisionalManagerSave() { |
| bool PasswordManager::ShouldPromptUserToSavePassword() const { |
| return !client_->IsAutomaticPasswordSavingEnabled() && |
| - provisional_save_manager_->IsNewLogin() && |
| + (provisional_save_manager_->IsNewLogin() || |
| + provisional_save_manager_->observed_form() |
| + .IsPossibleChangePasswordFormWithoutUsername()) && |
| !provisional_save_manager_->has_generated_password() && |
| !provisional_save_manager_->IsPendingCredentialsPublicSuffixMatch(); |
| } |
| @@ -686,9 +688,13 @@ void PasswordManager::OnLoginSuccessful() { |
| empty_password); |
| if (logger) |
| logger->LogMessage(Logger::STRING_DECISION_ASK); |
| - if (client_->PromptUserToSavePassword( |
| + bool update_password = !provisional_save_manager_->best_matches().empty() && |
|
vabr (Chromium)
2015/07/31 12:48:13
Can it happen that best_matches are non-empty, but
dvadym
2015/08/03 15:44:07
Yes, it's possible, but if the user decide not to
vabr (Chromium)
2015/08/04 08:59:07
Acknowledged.
|
| + provisional_save_manager_->observed_form() |
| + .IsPossibleChangePasswordFormWithoutUsername(); |
| + if (client_->PromptUserToSaveOrUpdatePassword( |
| provisional_save_manager_.Pass(), |
| - CredentialSourceType::CREDENTIAL_SOURCE_PASSWORD_MANAGER)) { |
| + CredentialSourceType::CREDENTIAL_SOURCE_PASSWORD_MANAGER, |
| + update_password)) { |
| if (logger) |
| logger->LogMessage(Logger::STRING_SHOW_PASSWORD_PROMPT); |
| } |