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 e56d279dd54ac53f9f74aa6a4e582b0e7525bbec..8aea0125a479920de444b09574baa0093713edc0 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
@@ -96,7 +96,8 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
origin_ = controller->origin(); |
state_ = controller->state(); |
- if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
+ if (state_ == password_manager::ui::PENDING_PASSWORD_STATE || |
+ state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { |
pending_password_ = controller->PendingPassword(); |
local_credentials_ = DeepCopyForms(controller->GetCurrentForms()); |
} else if (state_ == password_manager::ui::CONFIRMATION_STATE) { |
@@ -110,7 +111,8 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
local_credentials_ = DeepCopyForms(controller->GetCurrentForms()); |
} |
- if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
+ if (state_ == password_manager::ui::PENDING_PASSWORD_STATE || |
+ state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { |
UpdatePendingStateTitle(); |
} else if (state_ == password_manager::ui::BLACKLIST_STATE) { |
title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_BLACKLISTED_TITLE); |
@@ -248,6 +250,14 @@ void ManagePasswordsBubbleModel::OnSaveClicked() { |
state_ = password_manager::ui::MANAGE_STATE; |
} |
+void ManagePasswordsBubbleModel::OnUpdateClicked( |
+ const autofill::PasswordForm& password_form) { |
+ ManagePasswordsUIController* manage_passwords_ui_controller = |
+ ManagePasswordsUIController::FromWebContents(web_contents()); |
+ manage_passwords_ui_controller->UpdatePassword(password_form); |
+ state_ = password_manager::ui::MANAGE_STATE; |
+} |
+ |
void ManagePasswordsBubbleModel::OnDoneClicked() { |
dismissal_reason_ = metrics_util::CLICKED_DONE; |
} |
@@ -324,6 +334,11 @@ bool ManagePasswordsBubbleModel::IsNewUIActive() const { |
switches::kEnableCredentialManagerAPI); |
} |
+bool ManagePasswordsBubbleModel::ShouldShowMultipleAccountUpdateUI() const { |
+ return state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE && |
+ local_credentials_.size() > 1; |
+} |
+ |
// static |
int ManagePasswordsBubbleModel::UsernameFieldWidth() { |
return GetFieldWidth(USERNAME_FIELD); |
@@ -342,7 +357,8 @@ void ManagePasswordsBubbleModel::UpdatePendingStateTitle() { |
} else { |
GetSavePasswordDialogTitleTextAndLinkRange( |
web_contents()->GetVisibleURL(), origin(), |
- IsSmartLockBrandingEnabled(GetProfile()), &title_, |
+ IsSmartLockBrandingEnabled(GetProfile()), |
+ state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, &title_, |
&title_brand_link_range_); |
} |
} |