Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10100)

Unified Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc

Issue 848723002: Credential Manager API: Showing both local and federated logins. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698