Chromium Code Reviews| 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 83cea52299c5eaa94235f1a69fc2a6d49926f61f..d80c04f4cc4d88b64f1c26f993a80f3db01ab6bf 100644 |
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
| @@ -120,9 +120,9 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
| origin_ = controller->origin(); |
| state_ = controller->state(); |
| - if (password_manager::ui::IsPendingState(state_)) |
| + if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) |
| pending_password_ = controller->PendingPassword(); |
| - if (password_manager::ui::IsCredentialsState(state_)) { |
| + if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
| local_pending_credentials_.swap(controller->local_credentials_forms()); |
| federated_pending_credentials_.swap( |
| controller->federated_credentials_forms()); |
| @@ -130,14 +130,14 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
| best_matches_ = controller->best_matches(); |
| } |
| - if (password_manager::ui::IsPendingState(state_)) { |
| + if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
| title_ = PendingStateTitleBasedOnSavePasswordPref(never_save_passwords_); |
| } 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) { |
| title_ = |
| l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE); |
| - } else if (password_manager::ui::IsCredentialsState(state_)) { |
| + } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
| title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CHOOSE_TITLE); |
| } else if (password_manager::ui::IsAskSubmitURLState(state_)) { |
| title_ = |
| @@ -164,7 +164,7 @@ ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {} |
| void ManagePasswordsBubbleModel::OnBubbleShown( |
| ManagePasswordsBubble::DisplayReason reason) { |
| if (reason == ManagePasswordsBubble::USER_ACTION) { |
| - if (password_manager::ui::IsPendingState(state_)) { |
| + if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
| display_disposition_ = metrics_util::MANUAL_WITH_PASSWORD_PENDING; |
| } else if (state_ == password_manager::ui::BLACKLIST_STATE) { |
| display_disposition_ = metrics_util::MANUAL_BLACKLISTED; |
| @@ -175,7 +175,7 @@ void ManagePasswordsBubbleModel::OnBubbleShown( |
| if (state_ == password_manager::ui::CONFIRMATION_STATE) { |
| display_disposition_ = |
| metrics_util::AUTOMATIC_GENERATED_PASSWORD_CONFIRMATION; |
| - } else if (password_manager::ui::IsCredentialsState(state_)) { |
| + } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
| display_disposition_ = metrics_util::AUTOMATIC_CREDENTIAL_REQUEST; |
| } else { |
| display_disposition_ = metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING; |
| @@ -196,16 +196,21 @@ void ManagePasswordsBubbleModel::OnBubbleShown( |
| } |
| void ManagePasswordsBubbleModel::OnBubbleHidden() { |
| - if (password_manager::ui::IsCredentialsState(state_) && web_contents()) { |
| + ManagePasswordsUIController* manage_passwords_ui_controller = |
| + web_contents() ? |
| + ManagePasswordsUIController::FromWebContents(web_contents()) |
|
Mike West
2015/02/16 11:45:33
Does `::FromWebContents()` not return `nullptr` in
vasilii
2015/02/16 11:51:44
It returns "null pointer exception" via go/crash i
|
| + : nullptr; |
| + if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE && |
| + manage_passwords_ui_controller) { |
| // It's time to run the pending callback if it wasn't called in |
| // OnChooseCredentials(). |
| - ManagePasswordsUIController* manage_passwords_ui_controller = |
| - ManagePasswordsUIController::FromWebContents(web_contents()); |
| manage_passwords_ui_controller->ChooseCredential( |
| autofill::PasswordForm(), |
| password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); |
| state_ = password_manager::ui::INACTIVE_STATE; |
| } |
| + if (manage_passwords_ui_controller) |
| + manage_passwords_ui_controller->OnBubbleHidden(); |
| if (dismissal_reason_ == metrics_util::NOT_DISPLAYED) |
| return; |
| @@ -248,7 +253,7 @@ void ManagePasswordsBubbleModel::OnDoNotCollectURLClicked() { |
| void ManagePasswordsBubbleModel::OnNopeClicked() { |
| dismissal_reason_ = metrics_util::CLICKED_NOPE; |
| RecordExperimentStatistics(web_contents(), dismissal_reason_); |
| - if (!password_manager::ui::IsCredentialsState(state_)) |
| + if (state_ != password_manager::ui::CREDENTIAL_REQUEST_STATE) |
| state_ = password_manager::ui::PENDING_PASSWORD_STATE; |
| } |