| Index: components/password_manager/core/browser/password_autofill_manager.cc
|
| diff --git a/components/password_manager/core/browser/password_autofill_manager.cc b/components/password_manager/core/browser/password_autofill_manager.cc
|
| index f4cbc235df7e2984edc017e2d128b533738f2458..6f29e0a345514e5aa65c9df5983932e838e583c2 100644
|
| --- a/components/password_manager/core/browser/password_autofill_manager.cc
|
| +++ b/components/password_manager/core/browser/password_autofill_manager.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "components/autofill/core/browser/autofill_driver.h"
|
| #include "components/autofill/core/browser/popup_item_ids.h"
|
| +#include "components/autofill/core/browser/suggestion.h"
|
| #include "components/autofill/core/common/autofill_constants.h"
|
| #include "components/autofill/core/common/autofill_data_validation.h"
|
| #include "components/password_manager/core/browser/password_manager_client.h"
|
| @@ -28,19 +29,22 @@ namespace {
|
| // suggestions where the username has |current_username| as a prefix.
|
| void GetSuggestions(const autofill::PasswordFormFillData& fill_data,
|
| const base::string16& current_username,
|
| - std::vector<base::string16>* suggestions,
|
| - std::vector<base::string16>* realms,
|
| + std::vector<autofill::Suggestion>* suggestions,
|
| bool show_all) {
|
| if (show_all ||
|
| StartsWith(fill_data.username_field.value, current_username, false)) {
|
| - suggestions->push_back(fill_data.username_field.value);
|
| - realms->push_back(base::UTF8ToUTF16(fill_data.preferred_realm));
|
| + autofill::Suggestion suggestion(fill_data.username_field.value);
|
| + suggestion.label = base::UTF8ToUTF16(fill_data.preferred_realm);
|
| + suggestion.frontend_id = autofill::POPUP_ITEM_ID_PASSWORD_ENTRY;
|
| + suggestions->push_back(suggestion);
|
| }
|
|
|
| for (const auto& login : fill_data.additional_logins) {
|
| if (show_all || StartsWith(login.first, current_username, false)) {
|
| - suggestions->push_back(login.first);
|
| - realms->push_back(base::UTF8ToUTF16(login.second.realm));
|
| + autofill::Suggestion suggestion(login.first);
|
| + suggestion.label = base::UTF8ToUTF16(login.second.realm);
|
| + suggestion.frontend_id = autofill::POPUP_ITEM_ID_PASSWORD_ENTRY;
|
| + suggestions->push_back(suggestion);
|
| }
|
| }
|
|
|
| @@ -48,8 +52,10 @@ void GetSuggestions(const autofill::PasswordFormFillData& fill_data,
|
| for (size_t i = 0; i < usernames.second.size(); ++i) {
|
| if (show_all ||
|
| StartsWith(usernames.second[i], current_username, false)) {
|
| - suggestions->push_back(usernames.second[i]);
|
| - realms->push_back(base::UTF8ToUTF16(usernames.first.realm));
|
| + autofill::Suggestion suggestion(usernames.second[i]);
|
| + suggestion.label = base::UTF8ToUTF16(usernames.first.realm);
|
| + suggestion.frontend_id = autofill::POPUP_ITEM_ID_PASSWORD_ENTRY;
|
| + suggestions->push_back(suggestion);
|
| }
|
| }
|
| }
|
| @@ -113,8 +119,7 @@ void PasswordAutofillManager::OnShowPasswordSuggestions(
|
| const base::string16& typed_username,
|
| int options,
|
| const gfx::RectF& bounds) {
|
| - std::vector<base::string16> suggestions;
|
| - std::vector<base::string16> realms;
|
| + std::vector<autofill::Suggestion> suggestions;
|
| LoginToPasswordInfoMap::const_iterator fill_data_it =
|
| login_to_password_info_.find(key);
|
| if (fill_data_it == login_to_password_info_.end()) {
|
| @@ -122,9 +127,8 @@ void PasswordAutofillManager::OnShowPasswordSuggestions(
|
| NOTREACHED();
|
| return;
|
| }
|
| - GetSuggestions(fill_data_it->second, typed_username, &suggestions, &realms,
|
| + GetSuggestions(fill_data_it->second, typed_username, &suggestions,
|
| options & autofill::SHOW_ALL);
|
| - DCHECK_EQ(suggestions.size(), realms.size());
|
|
|
| form_data_key_ = key;
|
|
|
| @@ -133,23 +137,15 @@ void PasswordAutofillManager::OnShowPasswordSuggestions(
|
| return;
|
| }
|
|
|
| - std::vector<base::string16> empty(suggestions.size());
|
| - std::vector<int> password_ids(suggestions.size(),
|
| - autofill::POPUP_ITEM_ID_PASSWORD_ENTRY);
|
| if (options & autofill::IS_PASSWORD_FIELD) {
|
| - base::string16 password_field_suggestions_title = l10n_util::GetStringUTF16(
|
| - IDS_AUTOFILL_PASSWORD_FIELD_SUGGESTIONS_TITLE);
|
| - suggestions.insert(suggestions.begin(), password_field_suggestions_title);
|
| - realms.insert(realms.begin(), base::string16());
|
| - empty.insert(empty.begin(), base::string16());
|
| - password_ids.insert(password_ids.begin(), autofill::POPUP_ITEM_ID_TITLE);
|
| + autofill::Suggestion password_field_suggestions(l10n_util::GetStringUTF16(
|
| + IDS_AUTOFILL_PASSWORD_FIELD_SUGGESTIONS_TITLE));
|
| + password_field_suggestions.frontend_id = autofill::POPUP_ITEM_ID_TITLE;
|
| + suggestions.insert(suggestions.begin(), password_field_suggestions);
|
| }
|
| autofill_client_->ShowAutofillPopup(bounds,
|
| text_direction,
|
| suggestions,
|
| - realms,
|
| - empty,
|
| - password_ids,
|
| weak_ptr_factory_.GetWeakPtr());
|
| }
|
|
|
|
|