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 1248b11787ab7207efe6975f35a0e3f638cf4103..b50a2fe1e9f5b31cf27a31bdf47a25b2986e833a 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -375,11 +375,12 @@ void PasswordFormManager::OnRequestDone( |
// the PasswordForm objects pointed to by the result vector, thus we keep |
// copies to a minimum here. |
+ bool autofill_result_filtered = false; |
Ilya Sherman
2014/08/14 07:38:14
I was thinking that you'd pass this in to the new
Garrett Casto
2014/08/14 19:48:43
No, just missed. Removed.
|
int best_score = 0; |
// These credentials will be in the final result regardless of score. |
std::vector<PasswordForm> credentials_to_keep; |
for (size_t i = 0; i < logins_result.size(); i++) { |
- if (IgnoreResult(*logins_result[i])) { |
+ if (ShouldIgnoreResult(*logins_result[i], &autofill_result_filtered)) { |
delete logins_result[i]; |
continue; |
} |
@@ -439,6 +440,8 @@ void PasswordFormManager::OnRequestDone( |
// We're done matching now. |
state_ = POST_MATCHING_PHASE; |
+ client_->AutofillResultsComputed(); |
+ |
if (best_score <= 0) { |
return; |
} |
@@ -507,7 +510,9 @@ void PasswordFormManager::OnGetPasswordStoreResults( |
OnRequestDone(results); |
} |
-bool PasswordFormManager::IgnoreResult(const PasswordForm& form) const { |
+bool PasswordFormManager::ShouldIgnoreResult( |
+ const PasswordForm& form, |
+ bool* autofill_result_filtered) const { |
// Do not autofill on sign-up or change password forms (until we have some |
// working change password functionality). |
if (!observed_form_.new_password_element.empty()) |
@@ -515,6 +520,11 @@ bool PasswordFormManager::IgnoreResult(const PasswordForm& form) const { |
// Don't match an invalid SSL form with one saved under secure circumstances. |
if (form.ssl_valid && !observed_form_.ssl_valid) |
return true; |
+ |
+ if (client_->ShouldFilterAutofillResult(form)) { |
+ *autofill_result_filtered = true; |
+ return true; |
+ } |
return false; |
} |