Index: chrome/browser/ui/views/passwords/credentials_selection_view.cc |
diff --git a/chrome/browser/ui/views/passwords/credentials_selection_view.cc b/chrome/browser/ui/views/passwords/credentials_selection_view.cc |
index aebd9e13d3d6d99f092c6a10f4fa75741ef4fa88..54a8f3749e92395a4905219d99c7e16e778abb88 100644 |
--- a/chrome/browser/ui/views/passwords/credentials_selection_view.cc |
+++ b/chrome/browser/ui/views/passwords/credentials_selection_view.cc |
@@ -30,12 +30,13 @@ views::Label* GeneratePasswordLabel(const autofill::PasswordForm& form) { |
} // namespace |
CredentialsSelectionView::CredentialsSelectionView( |
- ManagePasswordsBubbleModel* manage_passwords_bubble_model, |
- const std::vector<const autofill::PasswordForm*>& password_forms, |
- const base::string16& best_matched_username) |
- : password_forms_(password_forms), |
+ ManagePasswordsBubbleModel* manage_passwords_bubble_model) |
+ : password_forms_(&manage_passwords_bubble_model->local_credentials()), |
+ default_index_(0), |
+ is_default_best_match_(false), |
+ is_default_preferred_(false), |
action_reported_(false) { |
- DCHECK(!password_forms.empty()); |
+ DCHECK(!password_forms_->empty()); |
// Layout. |
views::GridLayout* layout = new views::GridLayout(this); |
@@ -55,8 +56,7 @@ CredentialsSelectionView::CredentialsSelectionView( |
layout->StartRowWithPadding(0, column_set_id, 0, |
views::kRelatedControlVerticalSpacing); |
combobox_ = GenerateUsernameCombobox( |
- manage_passwords_bubble_model->local_credentials().get(), |
- best_matched_username); |
+ manage_passwords_bubble_model->pending_password().username_value); |
layout->AddView(combobox_); |
views::Label* label = |
GeneratePasswordLabel(manage_passwords_bubble_model->pending_password()); |
@@ -71,24 +71,23 @@ CredentialsSelectionView::~CredentialsSelectionView() { |
const autofill::PasswordForm* |
CredentialsSelectionView::GetSelectedCredentials() { |
- DCHECK_EQ(password_forms_.size(), |
+ DCHECK_EQ(password_forms_->size(), |
static_cast<size_t>(combobox_->model()->GetItemCount())); |
ReportUserActionOnce(false, combobox_->selected_index()); |
- return password_forms_[combobox_->selected_index()]; |
+ return &password_forms_->at(combobox_->selected_index()); |
} |
views::Combobox* CredentialsSelectionView::GenerateUsernameCombobox( |
- const std::vector<const autofill::PasswordForm*>& forms, |
const base::string16& best_matched_username) { |
std::vector<base::string16> usernames; |
- size_t best_matched_username_index = forms.size(); |
- size_t preferred_form_index = forms.size(); |
- for (size_t index = 0; index < forms.size(); ++index) { |
- usernames.push_back(forms[index]->username_value); |
- if (forms[index]->username_value == best_matched_username) { |
+ size_t best_matched_username_index = password_forms_->size(); |
+ size_t preferred_form_index = password_forms_->size(); |
+ for (size_t index = 0; index < password_forms_->size(); ++index) { |
+ usernames.push_back(password_forms_->at(index).username_value); |
+ if (password_forms_->at(index).username_value == best_matched_username) { |
best_matched_username_index = index; |
} |
- if (forms[index]->preferred) { |
+ if (password_forms_->at(index).preferred) { |
preferred_form_index = index; |
} |
} |
@@ -96,15 +95,11 @@ views::Combobox* CredentialsSelectionView::GenerateUsernameCombobox( |
views::Combobox* combobox = |
new views::Combobox(new ui::SimpleComboboxModel(usernames)); |
- default_index_ = 0; |
- is_default_best_match_ = false; |
- is_default_preferred_ = false; |
- |
- if (best_matched_username_index < forms.size()) { |
+ if (best_matched_username_index < password_forms_->size()) { |
is_default_best_match_ = true; |
default_index_ = best_matched_username_index; |
combobox->SetSelectedIndex(best_matched_username_index); |
- } else if (preferred_form_index < forms.size()) { |
+ } else if (preferred_form_index < password_forms_->size()) { |
is_default_preferred_ = true; |
default_index_ = preferred_form_index; |
combobox->SetSelectedIndex(preferred_form_index); |