| 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;
|
|
|