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 af537be63d2e730cf5bcdfe686090f0b2a2c9a90..501a3429d4049c01d05a5caa2456fc8251f61572 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
@@ -111,6 +111,10 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
UpdatePendingStateTitle(); |
+ save_button_text_ = l10n_util::GetStringUTF16( |
+ pending_password_.is_password_change_form_without_username |
+ ? IDS_PASSWORD_MANAGER_UPDATE_BUTTON |
+ : IDS_PASSWORD_MANAGER_SAVE_BUTTON); |
} else if (state_ == password_manager::ui::BLACKLIST_STATE) { |
title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_BLACKLISTED_TITLE); |
} else if (state_ == password_manager::ui::CONFIRMATION_STATE) { |
@@ -247,6 +251,16 @@ void ManagePasswordsBubbleModel::OnSaveClicked() { |
state_ = password_manager::ui::MANAGE_STATE; |
} |
+void ManagePasswordsBubbleModel::OnUpdateClicked( |
+ const autofill::PasswordForm& password_form) { |
+ dismissal_reason_ = metrics_util::CLICKED_UPDATE; |
+ RecordExperimentStatistics(web_contents(), dismissal_reason_); |
+ 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; |
} |
@@ -323,6 +337,11 @@ bool ManagePasswordsBubbleModel::IsNewUIActive() const { |
switches::kEnableCredentialManagerAPI); |
} |
+bool ManagePasswordsBubbleModel::ShouldShowMultipleAccountUpdateUI() const { |
+ return pending_password_.is_password_change_form_without_username && |
+ local_credentials_.size() > 1; |
+} |
+ |
// static |
int ManagePasswordsBubbleModel::UsernameFieldWidth() { |
return GetFieldWidth(USERNAME_FIELD); |
@@ -335,6 +354,10 @@ int ManagePasswordsBubbleModel::PasswordFieldWidth() { |
void ManagePasswordsBubbleModel::UpdatePendingStateTitle() { |
title_brand_link_range_ = gfx::Range(); |
+ int title_message_id = |
+ pending_password_.is_password_change_form_without_username |
+ ? IDS_UPDATE_PASSWORD |
+ : IDS_SAVE_PASSWORD; |
if (never_save_passwords_) { |
title_ = l10n_util::GetStringUTF16( |
IDS_MANAGE_PASSWORDS_BLACKLIST_CONFIRMATION_TITLE); |
@@ -343,11 +366,11 @@ void ManagePasswordsBubbleModel::UpdatePendingStateTitle() { |
base::string16 brand_link = |
l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_SMART_LOCK); |
size_t offset = 0; |
- title_ = l10n_util::GetStringFUTF16(IDS_SAVE_PASSWORD, brand_link, &offset); |
+ title_ = l10n_util::GetStringFUTF16(title_message_id, brand_link, &offset); |
title_brand_link_range_ = gfx::Range(offset, offset + brand_link.length()); |
} else { |
base::string16 brand_link = |
l10n_util::GetStringUTF16(IDS_SAVE_PASSWORD_TITLE_BRAND); |
- title_ = l10n_util::GetStringFUTF16(IDS_SAVE_PASSWORD, brand_link); |
+ title_ = l10n_util::GetStringFUTF16(title_message_id, brand_link); |
} |
} |