| 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 54a8f3749e92395a4905219d99c7e16e778abb88..6b7269d6d3ce71876538c6f12960f5a79685bd1d 100644
|
| --- a/chrome/browser/ui/views/passwords/credentials_selection_view.cc
|
| +++ b/chrome/browser/ui/views/passwords/credentials_selection_view.cc
|
| @@ -55,9 +55,9 @@ CredentialsSelectionView::CredentialsSelectionView(
|
| // The username combobox and password label.
|
| layout->StartRowWithPadding(0, column_set_id, 0,
|
| views::kRelatedControlVerticalSpacing);
|
| - combobox_ = GenerateUsernameCombobox(
|
| + GenerateUsernameCombobox(
|
| manage_passwords_bubble_model->pending_password().username_value);
|
| - layout->AddView(combobox_);
|
| + layout->AddView(combobox_.get());
|
| views::Label* label =
|
| GeneratePasswordLabel(manage_passwords_bubble_model->pending_password());
|
| layout->AddView(label);
|
| @@ -67,6 +67,10 @@ CredentialsSelectionView::CredentialsSelectionView(
|
|
|
| CredentialsSelectionView::~CredentialsSelectionView() {
|
| ReportUserActionOnce(true, -1);
|
| + // |combobox_| has a pointer to |combobox_model_|, so |combobox_| should be
|
| + // deleted before deleting of |combobox_model_|. To ensure this, let's delete
|
| + // it now.
|
| + combobox_.reset();
|
| }
|
|
|
| const autofill::PasswordForm*
|
| @@ -92,19 +96,19 @@ views::Combobox* CredentialsSelectionView::GenerateUsernameCombobox(
|
| }
|
| }
|
|
|
| - views::Combobox* combobox =
|
| - new views::Combobox(new ui::SimpleComboboxModel(usernames));
|
| + combobox_model_.reset(new ui::SimpleComboboxModel(usernames));
|
| + combobox_.reset(new views::Combobox(combobox_model_.get()));
|
|
|
| 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);
|
| + combobox_->SetSelectedIndex(best_matched_username_index);
|
| } else if (preferred_form_index < password_forms_->size()) {
|
| is_default_preferred_ = true;
|
| default_index_ = preferred_form_index;
|
| - combobox->SetSelectedIndex(preferred_form_index);
|
| + combobox_->SetSelectedIndex(preferred_form_index);
|
| }
|
| - return combobox;
|
| + return combobox_.get();
|
| }
|
|
|
| void CredentialsSelectionView::ReportUserActionOnce(bool was_update_rejected,
|
|
|