Index: chrome/browser/password_manager/chrome_password_manager_client.cc |
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc |
index 56dc08a5d7eb8e9e4ea144a0cb88a283049435b7..41c188b9813ea22d37f6684ca11df266d17dd4bc 100644 |
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc |
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc |
@@ -215,9 +215,10 @@ void ChromePasswordManagerClient::AutofillResultsComputed() { |
sync_credential_was_filtered_ = false; |
} |
-bool ChromePasswordManagerClient::PromptUserToSavePassword( |
+bool ChromePasswordManagerClient::PromptUserToSaveOrUpdatePassword( |
scoped_ptr<password_manager::PasswordFormManager> form_to_save, |
- password_manager::CredentialSourceType type) { |
+ password_manager::CredentialSourceType type, |
+ bool update_password) { |
// Save password infobar and the password bubble prompts in case of |
// "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://). |
if (!BrowsingDataHelper::IsWebScheme( |
@@ -228,7 +229,12 @@ bool ChromePasswordManagerClient::PromptUserToSavePassword( |
if (IsTheHotNewBubbleUIEnabled()) { |
ManagePasswordsUIController* manage_passwords_ui_controller = |
ManagePasswordsUIController::FromWebContents(web_contents()); |
- manage_passwords_ui_controller->OnPasswordSubmitted(form_to_save.Pass()); |
+ if (update_password && IsUpdatePasswordUIEnabled()) { |
+ manage_passwords_ui_controller->OnUpdatePasswordSubmitted( |
+ form_to_save.Pass()); |
+ } else { |
+ manage_passwords_ui_controller->OnPasswordSubmitted(form_to_save.Pass()); |
+ } |
} else { |
std::string uma_histogram_suffix( |
password_manager::metrics_util::GroupIdToString( |
@@ -540,6 +546,16 @@ bool ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled() { |
return group_name != "Infobar"; |
} |
+bool ChromePasswordManagerClient::IsUpdatePasswordUIEnabled() const { |
+ if (!ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()) { |
+ // Currently Password update UI is implemented only for Bubble UI. |
+ return false; |
+ } |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ return command_line->HasSwitch( |
+ password_manager::switches::kEnablePasswordChangeSupport); |
+} |
+ |
bool ChromePasswordManagerClient::EnabledForSyncSignin() { |
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
if (command_line->HasSwitch( |