| 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) {
|
|
|