| Index: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| index 2f79b8736960f8a13c857fac51ce85343db017a5..e1b9ea854d6f7adaa73ff3ac7367cda3b2c261e0 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
|
| @@ -244,12 +244,15 @@ void ManagePasswordsUIController::OnBubbleShown() {
|
| }
|
|
|
| void ManagePasswordsUIController::OnBubbleHidden() {
|
| + bool update_icon = (bubble_status_ == SHOWN_PENDING_ICON_UPDATE);
|
| bubble_status_ = NOT_SHOWN;
|
| if (GetState() == password_manager::ui::CONFIRMATION_STATE ||
|
| GetState() == password_manager::ui::AUTO_SIGNIN_STATE) {
|
| passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
|
| - UpdateBubbleAndIconVisibility();
|
| + update_icon = true;
|
| }
|
| + if (update_icon)
|
| + UpdateBubbleAndIconVisibility();
|
| }
|
|
|
| void ManagePasswordsUIController::OnNoInteractionOnUpdate() {
|
| @@ -281,7 +284,9 @@ void ManagePasswordsUIController::SavePassword() {
|
| DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState());
|
| SavePasswordInternal();
|
| passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
|
| - UpdateBubbleAndIconVisibility();
|
| + // The icon is to be updated after the bubble (either "Save password" or "Sign
|
| + // in to Chrome") is closed.
|
| + bubble_status_ = SHOWN_PENDING_ICON_UPDATE;
|
| }
|
|
|
| void ManagePasswordsUIController::UpdatePassword(
|
| @@ -327,6 +332,10 @@ void ManagePasswordsUIController::NavigateToPasswordManagerSettingsPage() {
|
| chrome::kPasswordManagerSubPage);
|
| }
|
|
|
| +void ManagePasswordsUIController::NavigateToChromeSignIn() {
|
| + // TODO(http://crbug.com/615825): do the job.
|
| +}
|
| +
|
| void ManagePasswordsUIController::OnDialogHidden() {
|
| dialog_controller_.reset();
|
| if (GetState() == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
|
| @@ -397,7 +406,7 @@ void ManagePasswordsUIController::DidNavigateMainFrame(
|
|
|
| // It is possible that the user was not able to interact with the password
|
| // bubble.
|
| - if (bubble_status_ == SHOWN)
|
| + if (bubble_status_ == SHOWN || bubble_status_ == SHOWN_PENDING_ICON_UPDATE)
|
| return;
|
|
|
| // Otherwise, reset the password manager.
|
|
|