| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" | 5 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
| 6 | 6 |
| 7 #include "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
| 8 #include "chrome/browser/chrome_notification_types.h" | 8 #include "chrome/browser/chrome_notification_types.h" |
| 9 #include "chrome/browser/password_manager/password_store_factory.h" | 9 #include "chrome/browser/password_manager/password_store_factory.h" |
| 10 #include "chrome/browser/ui/browser_command_controller.h" | 10 #include "chrome/browser/ui/browser_command_controller.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 void ManagePasswordsUIController::WebContentsDestroyed( | 84 void ManagePasswordsUIController::WebContentsDestroyed( |
| 85 content::WebContents* web_contents) { | 85 content::WebContents* web_contents) { |
| 86 password_manager::PasswordStore* password_store = | 86 password_manager::PasswordStore* password_store = |
| 87 GetPasswordStore(web_contents); | 87 GetPasswordStore(web_contents); |
| 88 if (password_store) | 88 if (password_store) |
| 89 password_store->RemoveObserver(this); | 89 password_store->RemoveObserver(this); |
| 90 } | 90 } |
| 91 | 91 |
| 92 void ManagePasswordsUIController::OnLoginsChanged( | 92 void ManagePasswordsUIController::OnLoginsChanged( |
| 93 const password_manager::PasswordStoreChangeList& changes) { | 93 const password_manager::PasswordStoreChangeList& changes) { |
| 94 password_manager::ui::State current_state = state_; |
| 94 for (password_manager::PasswordStoreChangeList::const_iterator it = | 95 for (password_manager::PasswordStoreChangeList::const_iterator it = |
| 95 changes.begin(); | 96 changes.begin(); |
| 96 it != changes.end(); | 97 it != changes.end(); |
| 97 it++) { | 98 it++) { |
| 98 const autofill::PasswordForm& changed_form = it->form(); | 99 const autofill::PasswordForm& changed_form = it->form(); |
| 99 if (changed_form.origin != origin_) | 100 if (changed_form.origin != origin_) |
| 100 continue; | 101 continue; |
| 101 | 102 |
| 102 if (it->type() == password_manager::PasswordStoreChange::REMOVE) { | 103 if (it->type() == password_manager::PasswordStoreChange::REMOVE) { |
| 103 password_form_map_.erase(changed_form.username_value); | 104 password_form_map_.erase(changed_form.username_value); |
| 105 if (changed_form.blacklisted_by_user) { |
| 106 DCHECK(state_ == password_manager::ui::BLACKLIST_STATE); |
| 107 state_ = password_manager::ui::MANAGE_STATE; |
| 108 } |
| 104 } else { | 109 } else { |
| 105 autofill::PasswordForm* new_form = | 110 autofill::PasswordForm* new_form = |
| 106 new autofill::PasswordForm(changed_form); | 111 new autofill::PasswordForm(changed_form); |
| 107 password_form_map_[changed_form.username_value] = new_form; | 112 password_form_map_[changed_form.username_value] = new_form; |
| 113 if (changed_form.blacklisted_by_user) |
| 114 state_ = password_manager::ui::BLACKLIST_STATE; |
| 108 } | 115 } |
| 109 } | 116 } |
| 117 if (current_state != state_) |
| 118 UpdateBubbleAndIconVisibility(); |
| 110 } | 119 } |
| 111 | 120 |
| 112 void ManagePasswordsUIController:: | 121 void ManagePasswordsUIController:: |
| 113 NavigateToPasswordManagerSettingsPage() { | 122 NavigateToPasswordManagerSettingsPage() { |
| 114 // TODO(mkwst): chrome_pages.h is compiled out of Android. Need to figure out | 123 // TODO(mkwst): chrome_pages.h is compiled out of Android. Need to figure out |
| 115 // how this navigation should work there. | 124 // how this navigation should work there. |
| 116 #if !defined(OS_ANDROID) | 125 #if !defined(OS_ANDROID) |
| 117 chrome::ShowSettingsSubPage( | 126 chrome::ShowSettingsSubPage( |
| 118 chrome::FindBrowserWithWebContents(web_contents()), | 127 chrome::FindBrowserWithWebContents(web_contents()), |
| 119 chrome::kPasswordManagerSubPage); | 128 chrome::kPasswordManagerSubPage); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 return; | 202 return; |
| 194 CommandUpdater* updater = browser->command_controller()->command_updater(); | 203 CommandUpdater* updater = browser->command_controller()->command_updater(); |
| 195 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE); | 204 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE); |
| 196 #endif | 205 #endif |
| 197 } | 206 } |
| 198 | 207 |
| 199 bool ManagePasswordsUIController::PasswordPendingUserDecision() const { | 208 bool ManagePasswordsUIController::PasswordPendingUserDecision() const { |
| 200 return state_ == password_manager::ui::PENDING_PASSWORD_STATE || | 209 return state_ == password_manager::ui::PENDING_PASSWORD_STATE || |
| 201 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE; | 210 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE; |
| 202 } | 211 } |
| OLD | NEW |