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 6035f328f4dff87a27f5f1b3ebaec79d1f51c305..60a01effa91928df563643545c207060824fad2d 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -123,7 +123,8 @@ PasswordFormManager::PasswordFormManager( |
manager_action_(kManagerActionNone), |
user_action_(kUserActionNone), |
submit_result_(kSubmitResultNotSubmitted), |
- form_type_(kFormTypeUnspecified) { |
+ form_type_(kFormTypeUnspecified), |
+ need_to_refetch_(false) { |
DCHECK_EQ(observed_form.scheme == PasswordForm::SCHEME_HTML, |
driver != nullptr); |
if (driver) |
@@ -309,14 +310,11 @@ void PasswordFormManager::Update( |
UpdateLogin(); |
} |
-void PasswordFormManager::FetchDataFromPasswordStore( |
- PasswordStore::AuthorizationPromptPolicy prompt_policy) { |
+void PasswordFormManager::FetchDataFromPasswordStore() { |
if (state_ == MATCHING_PHASE) { |
- // There is currently a password store query in progress. Remember the |
- // prompt policy for when the store results are back and another store query |
- // might be issued. |
- next_prompt_policy_.reset( |
- new PasswordStore::AuthorizationPromptPolicy(prompt_policy)); |
+ // There is currently a password store query in progress, need to re-fetch |
+ // store results later. |
+ need_to_refetch_ = true; |
return; |
} |
@@ -338,7 +336,7 @@ void PasswordFormManager::FetchDataFromPasswordStore( |
NOTREACHED(); |
return; |
} |
- password_store->GetLogins(observed_form_, prompt_policy, this); |
+ password_store->GetLogins(observed_form_, this); |
// The statistics isn't needed on mobile, only on desktop. Let's save some |
// processor cycles. |
@@ -530,11 +528,11 @@ void PasswordFormManager::OnGetPasswordStoreResults( |
ScopedVector<PasswordForm> results) { |
DCHECK_EQ(state_, MATCHING_PHASE); |
- if (next_prompt_policy_) { |
+ if (need_to_refetch_) { |
// The received results are no longer up-to-date, need to re-request. |
state_ = PRE_MATCHING_PHASE; |
- FetchDataFromPasswordStore(*next_prompt_policy_); |
- next_prompt_policy_.reset(); |
+ FetchDataFromPasswordStore(); |
+ need_to_refetch_ = false; |
return; |
} |
@@ -667,8 +665,9 @@ void PasswordFormManager::UpdateLogin() { |
// Update() method. |
if (has_generated_password_) { |
UploadGeneratedVote(); |
- } else if (!observed_form_.IsPossibleChangePasswordForm()) |
+ } else if (!observed_form_.IsPossibleChangePasswordForm()) { |
SendAutofillVotes(observed_form_, &pending_credentials_); |
+ } |
UpdatePreferredLoginState(password_store); |
@@ -1079,9 +1078,9 @@ void PasswordFormManager::CreatePendingCredentials() { |
provisionally_saved_form_->new_password_element.empty(); |
is_new_login_ = false; |
- if (best_update_match) |
+ if (best_update_match) { |
pending_credentials_ = *best_update_match; |
- else if (has_generated_password_) { |
+ } else if (has_generated_password_) { |
// If a password was generated and we didn't find match we have to save it |
// in separate entry since we have to store it but we don't know where. |
CreatePendingCredentialsForNewCredentials(); |