| Index: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| index 67787ba8a940ea2f8a99d21a2b13377a9345b7d5..7f44b422f408ba9b5ac4573354f48545f3d53e69 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| @@ -119,11 +119,16 @@ bool ManagePasswordsUIController::OnChooseCredentials(
|
| ScopedVector<autofill::PasswordForm> local_credentials,
|
| ScopedVector<autofill::PasswordForm> federated_credentials,
|
| base::Callback<void(const password_manager::CredentialInfo&)> callback){
|
| - // TODO(vasilii): Do something clever with |federated_credentials|.
|
| DCHECK(!local_credentials.empty() || !federated_credentials.empty());
|
| form_manager_.reset();
|
| - origin_ = local_credentials[0]->origin;
|
| - new_password_forms_.swap(local_credentials);
|
| + // TODO(melandory): fix the crash when |local_credentials| is empty.
|
| + // By providing origin explicitly.
|
| + if (!local_credentials.empty())
|
| + origin_ = local_credentials[0]->origin;
|
| + else
|
| + origin_ = GURL();
|
| + local_credentials_forms_.swap(local_credentials);
|
| + federated_credentials_forms_.swap(federated_credentials);
|
| // The map is useless because usernames may overlap.
|
| password_form_map_.clear();
|
| SetState(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE);
|
| @@ -211,13 +216,12 @@ void ManagePasswordsUIController::SavePassword() {
|
| }
|
|
|
| void ManagePasswordsUIController::ChooseCredential(
|
| - bool was_chosen,
|
| - const autofill::PasswordForm& form) {
|
| + const autofill::PasswordForm& form,
|
| + password_manager::CredentialType credential_type) {
|
| DCHECK(password_manager::ui::IsCredentialsState(state_));
|
| DCHECK(!credentials_callback_.is_null());
|
| - password_manager::CredentialInfo info = was_chosen ?
|
| - password_manager::CredentialInfo(form) :
|
| - password_manager::CredentialInfo();
|
| + password_manager::CredentialInfo info =
|
| + password_manager::CredentialInfo(form, credential_type);
|
| credentials_callback_.Run(info);
|
| SetState(password_manager::ui::INACTIVE_STATE);
|
| UpdateBubbleAndIconVisibility();
|
|
|