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

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

Issue 952023002: Credential Manager API: pop up the new "Manage accounts" bubble. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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_bubble_model.cc
diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
index 84b46b29aec5fc42aa81faf975939dd2605d20ad..c1e6f4a507ce1abe39c72780d791e782c486c84f 100644
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
+#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/password_manager/password_store_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
@@ -124,11 +125,18 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
pending_password_ = controller->PendingPassword();
best_matches_ = controller->best_matches();
} else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
+ // TODO(vasilii): stealing the credential is a bad idea if we decide to
+ // be in MANAGE_ACCOUNTS_STATE after showing the credential chooser UI.
local_pending_credentials_.swap(controller->local_credentials_forms());
federated_pending_credentials_.swap(
controller->federated_credentials_forms());
} else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
pending_password_ = *controller->local_credentials_forms()[0];
+ } else if (state_ == password_manager::ui::MANAGE_ACCOUNTS_STATE) {
+ const auto& forms = controller->local_credentials_forms();
+ local_pending_credentials_.reserve(forms.size());
+ for (autofill::PasswordForm* form : forms)
+ local_pending_credentials_.push_back(new autofill::PasswordForm(*form));
} else {
best_matches_ = controller->best_matches();
}
@@ -144,6 +152,9 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CHOOSE_TITLE);
} else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
// There is no title.
+ } else if (state_ == password_manager::ui::MANAGE_ACCOUNTS_STATE) {
+ title_ = l10n_util::GetStringFUTF16(IDS_MANAGE_ACCOUNTS_TITLE,
+ base::UTF8ToUTF16(origin_.spec()));
} else if (password_manager::ui::IsAskSubmitURLState(state_)) {
title_ =
l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_ASK_TO_SUBMIT_URL_TITLE);
@@ -321,6 +332,14 @@ void ManagePasswordsBubbleModel::OnAutoSignInToastTimeout() {
dismissal_reason_ = metrics_util::AUTO_SIGNIN_TOAST_TIMEOUT;
}
+void ManagePasswordsBubbleModel::OnAutoSignInClicked() {
+ dismissal_reason_ = metrics_util::AUTO_SIGNIN_TOAST_CLICKED;
+ ManagePasswordsUIController* manage_passwords_ui_controller =
+ ManagePasswordsUIController::FromWebContents(web_contents());
+ manage_passwords_ui_controller->ManageAccounts();
+ state_ = password_manager::ui::MANAGE_ACCOUNTS_STATE;
+}
+
void ManagePasswordsBubbleModel::OnPasswordAction(
const autofill::PasswordForm& password_form,
PasswordAction action) {

Powered by Google App Engine
This is Rietveld 408576698