Chromium Code Reviews| 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 d6903dde75926e710c2670557155fbbd73e4c17e..857d4a5e831868fd5448e30fe917e04b86fd1be4 100644 |
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
| @@ -174,20 +174,108 @@ void ManagePasswordsUIController::OnPasswordAutofilled( |
| void ManagePasswordsUIController::OnLoginsChanged( |
| const password_manager::PasswordStoreChangeList& changes) { |
| - password_manager::ui::State current_state = state(); |
| + password_manager::ui::State current_state = GetState(); |
| passwords_data_.ProcessLoginsChanged(changes); |
| - if (current_state != state()) |
| + if (current_state != GetState()) |
| UpdateBubbleAndIconVisibility(); |
| } |
| -void ManagePasswordsUIController::NavigateToPasswordManagerSettingsPage() { |
| -#if defined(OS_ANDROID) |
| - chrome::android::ChromeApplication::ShowPasswordSettings(); |
| -#else |
| - chrome::ShowSettingsSubPage( |
| - chrome::FindBrowserWithWebContents(web_contents()), |
| - chrome::kPasswordManagerSubPage); |
| -#endif |
| +const GURL& ManagePasswordsUIController::GetOrigin() const { |
| + return passwords_data_.origin(); |
| +} |
| + |
| +password_manager::ui::State ManagePasswordsUIController::GetState() const { |
| + return passwords_data_.state(); |
| +} |
| + |
| +const autofill::PasswordForm& ManagePasswordsUIController:: |
| + GetPendingPassword() const { |
| + if (GetState() == password_manager::ui::AUTO_SIGNIN_STATE) |
| + return *GetCurrentForms()[0]; |
| + |
| + DCHECK(GetState() == password_manager::ui::PENDING_PASSWORD_STATE || |
| + GetState() == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || |
| + GetState() == password_manager::ui::CONFIRMATION_STATE) |
| + << GetState(); |
| + password_manager::PasswordFormManager* form_manager = |
| + passwords_data_.form_manager(); |
| + return form_manager->pending_credentials(); |
| +} |
| + |
| +bool ManagePasswordsUIController::IsPasswordOverridden() const { |
| + const password_manager::PasswordFormManager* form_manager = |
| + passwords_data_.form_manager(); |
| + return form_manager ? form_manager->password_overridden() : false; |
| +} |
| + |
| +const std::vector<const autofill::PasswordForm*>& |
| +ManagePasswordsUIController::GetCurrentForms() const { |
| + return passwords_data_.GetCurrentForms(); |
| +} |
| + |
| +const std::vector<const autofill::PasswordForm*>& |
| +ManagePasswordsUIController::GetFederatedForms() const { |
| + return passwords_data_.federated_credentials_forms(); |
| +} |
| + |
| +void ManagePasswordsUIController::OnBubbleShown() { |
| + should_pop_up_bubble_ = false; |
| +} |
| + |
| +void ManagePasswordsUIController::OnBubbleHidden() { |
| + // Avoid using |state()| which is overridden for some unit tests. |
|
vabr (Chromium)
2015/11/18 08:59:45
There is no more state(), and the code below is us
vasilii
2015/11/18 12:27:45
Done.
|
| + if (GetState() == password_manager::ui::CREDENTIAL_REQUEST_STATE || |
| + GetState() == password_manager::ui::CONFIRMATION_STATE || |
| + GetState() == password_manager::ui::AUTO_SIGNIN_STATE) { |
| + passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| + UpdateBubbleAndIconVisibility(); |
| + } |
| +} |
| + |
| +void ManagePasswordsUIController::OnNoInteractionOnUpdate() { |
| + if (GetState() != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { |
| + // Do nothing if the state was changed. It can happen for example when the |
| + // update bubble is active and a page navigation happens. |
| + return; |
| + } |
| + password_manager::PasswordFormManager* form_manager = |
| + passwords_data_.form_manager(); |
| + DCHECK(form_manager); |
| + form_manager->OnNoInteractionOnUpdate(); |
| +} |
| + |
| +void ManagePasswordsUIController::OnNopeUpdateClicked() { |
| + password_manager::PasswordFormManager* form_manager = |
| + passwords_data_.form_manager(); |
| + DCHECK(form_manager); |
| + form_manager->OnNopeUpdateClicked(); |
| +} |
| + |
| +void ManagePasswordsUIController::NeverSavePassword() { |
| + DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState()); |
| + NeverSavePasswordInternal(); |
| + // The state stays the same. |
| +} |
| + |
| +void ManagePasswordsUIController::SavePassword() { |
| + DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState()); |
| + SavePasswordInternal(); |
| + passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| + UpdateBubbleAndIconVisibility(); |
| +} |
| + |
| +void ManagePasswordsUIController::UpdatePassword( |
| + const autofill::PasswordForm& password_form) { |
| + DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, GetState()); |
| + UpdatePasswordInternal(password_form); |
| + passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| + UpdateBubbleAndIconVisibility(); |
| +} |
| + |
| +void ManagePasswordsUIController::ChooseCredential( |
| + const autofill::PasswordForm& form, |
| + password_manager::CredentialType credential_type) { |
| + passwords_data_.ChooseCredential(form, credential_type); |
| } |
| void ManagePasswordsUIController::NavigateToExternalPasswordManager() { |
| @@ -228,25 +316,14 @@ void ManagePasswordsUIController::NavigateToSmartLockHelpPage() { |
| #endif |
| } |
| -void ManagePasswordsUIController::SavePassword() { |
| - DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, state()); |
| - SavePasswordInternal(); |
| - passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| - UpdateBubbleAndIconVisibility(); |
| -} |
| - |
| -void ManagePasswordsUIController::UpdatePassword( |
| - const autofill::PasswordForm& password_form) { |
| - DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, state()); |
| - UpdatePasswordInternal(password_form); |
| - passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| - UpdateBubbleAndIconVisibility(); |
| -} |
| - |
| -void ManagePasswordsUIController::ChooseCredential( |
| - const autofill::PasswordForm& form, |
| - password_manager::CredentialType credential_type) { |
| - passwords_data_.ChooseCredential(form, credential_type); |
| +void ManagePasswordsUIController::NavigateToPasswordManagerSettingsPage() { |
| +#if defined(OS_ANDROID) |
| + chrome::android::ChromeApplication::ShowPasswordSettings(); |
| +#else |
| + chrome::ShowSettingsSubPage( |
| + chrome::FindBrowserWithWebContents(web_contents()), |
| + chrome::kPasswordManagerSubPage); |
| +#endif |
| } |
| void ManagePasswordsUIController::SavePasswordInternal() { |
| @@ -269,12 +346,6 @@ void ManagePasswordsUIController::UpdatePasswordInternal( |
| form_manager->Update(password_form); |
| } |
| -void ManagePasswordsUIController::NeverSavePassword() { |
| - DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, state()); |
| - NeverSavePasswordInternal(); |
| - // The state stays the same. |
| -} |
| - |
| void ManagePasswordsUIController::NeverSavePasswordInternal() { |
| password_manager::PasswordFormManager* form_manager = |
| passwords_data_.form_manager(); |
| @@ -308,77 +379,20 @@ void ManagePasswordsUIController::WasHidden() { |
| #endif |
| } |
| -const autofill::PasswordForm& ManagePasswordsUIController:: |
| - PendingPassword() const { |
| - if (state() == password_manager::ui::AUTO_SIGNIN_STATE) |
| - return *GetCurrentForms()[0]; |
| - |
| - DCHECK(state() == password_manager::ui::PENDING_PASSWORD_STATE || |
| - state() == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || |
| - state() == password_manager::ui::CONFIRMATION_STATE) |
| - << state(); |
| - password_manager::PasswordFormManager* form_manager = |
| - passwords_data_.form_manager(); |
| - return form_manager->pending_credentials(); |
| -} |
| - |
| -bool ManagePasswordsUIController::PasswordOverridden() const { |
| - const password_manager::PasswordFormManager* form_manager = |
| - passwords_data_.form_manager(); |
| - return form_manager ? form_manager->password_overridden() : false; |
| -} |
| - |
| #if !defined(OS_ANDROID) |
| void ManagePasswordsUIController::UpdateIconAndBubbleState( |
| ManagePasswordsIconView* icon) { |
| if (should_pop_up_bubble_) { |
| // We must display the icon before showing the bubble, as the bubble would |
| // be otherwise unanchored. |
| - icon->SetState(state()); |
| + icon->SetState(GetState()); |
| ShowBubbleWithoutUserInteraction(); |
| } else { |
| - icon->SetState(state()); |
| + icon->SetState(GetState()); |
| } |
| } |
| #endif |
| -void ManagePasswordsUIController::OnBubbleShown() { |
| - should_pop_up_bubble_ = false; |
| -} |
| - |
| -void ManagePasswordsUIController::OnNopeUpdateClicked() { |
| - password_manager::PasswordFormManager* form_manager = |
| - passwords_data_.form_manager(); |
| - DCHECK(form_manager); |
| - form_manager->OnNopeUpdateClicked(); |
| -} |
| - |
| -void ManagePasswordsUIController::OnNoInteractionOnUpdate() { |
| - if (state() != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { |
| - // Do nothing if the state was changed. It can happen for example when the |
| - // update bubble is active and a page navigation happens. |
| - return; |
| - } |
| - password_manager::PasswordFormManager* form_manager = |
| - passwords_data_.form_manager(); |
| - DCHECK(form_manager); |
| - form_manager->OnNoInteractionOnUpdate(); |
| -} |
| - |
| -void ManagePasswordsUIController::OnBubbleHidden() { |
| - // Avoid using |state()| which is overridden for some unit tests. |
| - if (state() == password_manager::ui::CREDENTIAL_REQUEST_STATE || |
| - state() == password_manager::ui::CONFIRMATION_STATE || |
| - state() == password_manager::ui::AUTO_SIGNIN_STATE) { |
| - passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| - UpdateBubbleAndIconVisibility(); |
| - } |
| -} |
| - |
| -password_manager::ui::State ManagePasswordsUIController::state() const { |
| - return passwords_data_.state(); |
| -} |
| - |
| void ManagePasswordsUIController::ShowBubbleWithoutUserInteraction() { |
| DCHECK(should_pop_up_bubble_); |
| #if !defined(OS_ANDROID) |
| @@ -397,3 +411,9 @@ void ManagePasswordsUIController::WebContentsDestroyed() { |
| if (password_store) |
| password_store->RemoveObserver(this); |
| } |
| + |
| +PasswordsModelDelegate* PasswordsModelDelegateFromWebContents( |
|
vabr (Chromium)
2015/11/18 08:59:45
I am not happy about the definition of this functi
vasilii
2015/11/18 12:27:45
Done.
vabr (Chromium)
2015/11/18 12:36:40
Just to acknowledge that I was incorrect here, and
|
| + content::WebContents* web_contents) { |
| + DCHECK(web_contents); |
| + return ManagePasswordsUIController::FromWebContents(web_contents); |
| +} |