| 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 1e7ac9dab35dec9de67cda451f5ccdde0ce1ff7a..fb8178bc02c49ada89127b90f3aa58ee54d92117 100644
|
| --- a/components/password_manager/core/browser/password_manager.cc
|
| +++ b/components/password_manager/core/browser/password_manager.cc
|
| @@ -167,14 +167,6 @@
|
| bool password_is_generated) {
|
| DCHECK(client_->IsSavingEnabledForCurrentPage());
|
|
|
| - if (!password_is_generated) {
|
| - // Since this password was provisionally saved it was removed from
|
| - // |pending_login_managers_| and needs to be re-added.
|
| - provisional_save_manager_->set_has_generated_password(false);
|
| - pending_login_managers_.push_back(provisional_save_manager_.Pass());
|
| - return;
|
| - }
|
| -
|
| ScopedVector<PasswordFormManager>::iterator matched_manager_it =
|
| pending_login_managers_.end();
|
| PasswordFormManager::MatchResultMask current_match_result =
|
| @@ -209,15 +201,15 @@
|
| }
|
|
|
| if (matched_manager_it != pending_login_managers_.end()) {
|
| - (*matched_manager_it)->set_has_generated_password(true);
|
| -
|
| - // Provisionally save generated passwords now, as they should always be
|
| - // saved.
|
| - ProvisionallySavePassword(form);
|
| - return;
|
| - }
|
| -
|
| - UMA_HISTOGRAM_BOOLEAN("PasswordManager.GeneratedFormHasNoFormManager", true);
|
| + (*matched_manager_it)->set_has_generated_password(password_is_generated);
|
| + return;
|
| + }
|
| +
|
| + UMA_HISTOGRAM_BOOLEAN("PasswordManager.GeneratedFormHasNoFormManager",
|
| + password_is_generated);
|
| +
|
| + if (!password_is_generated)
|
| + return;
|
|
|
| // If there is no corresponding PasswordFormManager, we create one. This is
|
| // not the common case, and should only happen when there is a bug in our
|
| @@ -227,7 +219,6 @@
|
| this, client_, driver->AsWeakPtr(), form, ssl_valid);
|
| pending_login_managers_.push_back(manager);
|
| manager->set_has_generated_password(true);
|
| - ProvisionallySavePassword(form);
|
| }
|
|
|
| void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
|
| @@ -611,10 +602,6 @@
|
| if (did_stop_loading) {
|
| if (provisional_save_manager_->pending_credentials().scheme ==
|
| PasswordForm::SCHEME_HTML) {
|
| - // Generated passwords should always be saved.
|
| - if (provisional_save_manager_->has_generated_password())
|
| - all_visible_forms_.clear();
|
| -
|
| for (size_t i = 0; i < all_visible_forms_.size(); ++i) {
|
| // TODO(vabr): The similarity check is just action equality up to
|
| // HTTP<->HTTPS substitution for now. If it becomes more complex, it may
|
|
|