Index: chrome/browser/password_manager/password_manager.cc |
diff --git a/chrome/browser/password_manager/password_manager.cc b/chrome/browser/password_manager/password_manager.cc |
index fc6c58eb50d5cda6d1776a7ac3bbfe5dadd1c35c..8ee0ac85f9b8f22fac2ffb03035644b61e986cd9 100644 |
--- a/chrome/browser/password_manager/password_manager.cc |
+++ b/chrome/browser/password_manager/password_manager.cc |
@@ -116,7 +116,7 @@ void PasswordManager::DidStopLoading() { |
} |
} |
-void PasswordManager::PasswordFormsSeen( |
+void PasswordManager::PasswordFormsFound( |
const std::vector<PasswordForm>& forms) { |
if (!delegate_->GetProfileForPasswordManager()) |
return; |
@@ -128,22 +128,28 @@ void PasswordManager::PasswordFormsSeen( |
std::vector<PasswordForm>::const_iterator iter; |
for (iter = forms.begin(); iter != forms.end(); iter++) { |
- if (provisional_save_manager_.get() && |
- provisional_save_manager_->DoesManage(*iter)) { |
- // The form trying to be saved has immediately re-appeared. Assume |
- // login failure and abort this save. Fallback to pending login state |
- // since the user may try again. |
- pending_login_managers_.push_back(provisional_save_manager_.release()); |
+ bool ssl_valid = iter->origin.SchemeIsSecure() && !had_ssl_error; |
+ PasswordFormManager* manager = |
+ new PasswordFormManager(delegate_->GetProfileForPasswordManager(), |
+ this, *iter, ssl_valid); |
+ pending_login_managers_.push_back(manager); |
+ manager->FetchMatchingLoginsFromWebDatabase(); |
+ } |
+} |
+ |
+void PasswordManager::PasswordFormsVisible( |
+ const std::vector<PasswordForm>& visible_forms) { |
+ if (!provisional_save_manager_.get()) |
+ return; |
+ std::vector<PasswordForm>::const_iterator iter; |
+ for (iter = visible_forms.begin(); iter != visible_forms.end(); iter++) { |
+ if (provisional_save_manager_->DoesManage(*iter)) { |
+ // The form trying to be saved has immediately re-appeared. Assume login |
+ // failure and abort this save, by clearing provisional_save_manager_. |
// Don't delete the login managers since the user may try again |
// and we want to be able to save in that case. |
+ provisional_save_manager_.release(); |
break; |
- } else { |
- bool ssl_valid = iter->origin.SchemeIsSecure() && !had_ssl_error; |
- PasswordFormManager* manager = |
- new PasswordFormManager(delegate_->GetProfileForPasswordManager(), |
- this, *iter, ssl_valid); |
- pending_login_managers_.push_back(manager); |
- manager->FetchMatchingLoginsFromWebDatabase(); |
} |
} |
} |