Index: components/autofill/renderer/password_autofill_agent.cc |
diff --git a/components/autofill/renderer/password_autofill_agent.cc b/components/autofill/renderer/password_autofill_agent.cc |
index 7ff58b1ca707275ae7d7e7ad4c3cac9a56d134c9..ce3f6b6b7934cd208675da401e2225bd8da272b4 100644 |
--- a/components/autofill/renderer/password_autofill_agent.cc |
+++ b/components/autofill/renderer/password_autofill_agent.cc |
@@ -4,6 +4,8 @@ |
#include "components/autofill/renderer/password_autofill_agent.h" |
+#include <vector> |
+ |
#include "base/bind.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop.h" |
@@ -486,15 +488,20 @@ void PasswordAutofillAgent::OnFillPasswordForm( |
void PasswordAutofillAgent::GetSuggestions( |
const PasswordFormFillData& fill_data, |
const base::string16& input, |
- std::vector<base::string16>* suggestions) { |
- if (StartsWith(fill_data.basic_data.fields[0].value, input, false)) |
+ std::vector<base::string16>* suggestions, |
+ std::vector<base::string16>* realms) { |
+ if (StartsWith(fill_data.basic_data.fields[0].value, input, false)) { |
suggestions->push_back(fill_data.basic_data.fields[0].value); |
+ realms->push_back(fill_data.preferred_realm); |
+ } |
for (PasswordFormFillData::LoginCollection::const_iterator iter = |
- fill_data.additional_logins.begin(); |
- iter != fill_data.additional_logins.end(); ++iter) { |
- if (StartsWith(iter->first, input, false)) |
+ fill_data.additional_logins_realms.begin(); |
+ iter != fill_data.additional_logins_realms.end(); ++iter) { |
+ if (StartsWith(iter->first, input, false)) { |
suggestions->push_back(iter->first); |
+ realms->push_back(iter->second); |
+ } |
} |
for (PasswordFormFillData::UsernamesCollection::const_iterator iter = |
@@ -521,7 +528,11 @@ bool PasswordAutofillAgent::ShowSuggestionPopup( |
return false; |
std::vector<base::string16> suggestions; |
- GetSuggestions(fill_data, user_input.value(), &suggestions); |
+ std::vector<base::string16> suggestions_realms; |
+ GetSuggestions(fill_data, |
+ user_input.value(), |
+ &suggestions, |
+ &suggestions_realms); |
if (disable_popup_) { |
FormData form; |
@@ -540,7 +551,8 @@ bool PasswordAutofillAgent::ShowSuggestionPopup( |
Send(new AutofillHostMsg_ShowPasswordSuggestions(routing_id(), |
field, |
bounding_box_scaled, |
- suggestions)); |
+ suggestions, |
+ suggestions_realms)); |
return !suggestions.empty(); |
} |
@@ -578,8 +590,8 @@ bool PasswordAutofillAgent::FillUserNameAndPassword( |
} else { |
// Scan additional logins for a match. |
PasswordFormFillData::LoginCollection::const_iterator iter; |
- for (iter = fill_data.additional_logins.begin(); |
- iter != fill_data.additional_logins.end(); ++iter) { |
+ for (iter = fill_data.additional_logins_passwords.begin(); |
+ iter != fill_data.additional_logins_passwords.end(); ++iter) { |
if (DoUsernamesMatch(iter->first, current_username, |
exact_username_match)) { |
username = iter->first; |