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..fd3ca114c04897ade2594069bdbb9abd046bbe7b 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_ = federated_credentials[0]->origin; |
vasilii
2015/01/23 17:04:37
Well, the origin of a federated login isn't what w
melandory
2015/01/23 18:16:04
Yes, I see now. I'll set empty value for it right
melandory
2015/01/26 08:52:47
https://codereview.chromium.org/877613004
|
+ 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(); |