Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc

Issue 276583003: Password bubble: Deal correctly with blacklist state changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 void ManagePasswordsUIController::WebContentsDestroyed() { 84 void ManagePasswordsUIController::WebContentsDestroyed() {
85 password_manager::PasswordStore* password_store = 85 password_manager::PasswordStore* password_store =
86 GetPasswordStore(web_contents()); 86 GetPasswordStore(web_contents());
87 if (password_store) 87 if (password_store)
88 password_store->RemoveObserver(this); 88 password_store->RemoveObserver(this);
89 } 89 }
90 90
91 void ManagePasswordsUIController::OnLoginsChanged( 91 void ManagePasswordsUIController::OnLoginsChanged(
92 const password_manager::PasswordStoreChangeList& changes) { 92 const password_manager::PasswordStoreChangeList& changes) {
93 password_manager::ui::State current_state = state_;
93 for (password_manager::PasswordStoreChangeList::const_iterator it = 94 for (password_manager::PasswordStoreChangeList::const_iterator it =
94 changes.begin(); 95 changes.begin();
95 it != changes.end(); 96 it != changes.end();
96 it++) { 97 it++) {
97 const autofill::PasswordForm& changed_form = it->form(); 98 const autofill::PasswordForm& changed_form = it->form();
98 if (changed_form.origin != origin_) 99 if (changed_form.origin != origin_)
99 continue; 100 continue;
100 101
101 if (it->type() == password_manager::PasswordStoreChange::REMOVE) { 102 if (it->type() == password_manager::PasswordStoreChange::REMOVE) {
102 password_form_map_.erase(changed_form.username_value); 103 password_form_map_.erase(changed_form.username_value);
104 if (changed_form.blacklisted_by_user) {
105 DCHECK(state_ == password_manager::ui::BLACKLIST_STATE);
106 state_ = password_manager::ui::MANAGE_STATE;
107 }
103 } else { 108 } else {
104 autofill::PasswordForm* new_form = 109 new_password_forms_.push_back(new autofill::PasswordForm(changed_form));
105 new autofill::PasswordForm(changed_form); 110 password_form_map_[changed_form.username_value] =
106 password_form_map_[changed_form.username_value] = new_form; 111 new_password_forms_.back();
112 if (changed_form.blacklisted_by_user)
113 state_ = password_manager::ui::BLACKLIST_STATE;
107 } 114 }
108 } 115 }
116 if (current_state != state_)
117 UpdateBubbleAndIconVisibility();
109 } 118 }
110 119
111 void ManagePasswordsUIController:: 120 void ManagePasswordsUIController::
112 NavigateToPasswordManagerSettingsPage() { 121 NavigateToPasswordManagerSettingsPage() {
113 // TODO(mkwst): chrome_pages.h is compiled out of Android. Need to figure out 122 // TODO(mkwst): chrome_pages.h is compiled out of Android. Need to figure out
114 // how this navigation should work there. 123 // how this navigation should work there.
115 #if !defined(OS_ANDROID) 124 #if !defined(OS_ANDROID)
116 chrome::ShowSettingsSubPage( 125 chrome::ShowSettingsSubPage(
117 chrome::FindBrowserWithWebContents(web_contents()), 126 chrome::FindBrowserWithWebContents(web_contents()),
118 chrome::kPasswordManagerSubPage); 127 chrome::kPasswordManagerSubPage);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 return; 201 return;
193 CommandUpdater* updater = browser->command_controller()->command_updater(); 202 CommandUpdater* updater = browser->command_controller()->command_updater();
194 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE); 203 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE);
195 #endif 204 #endif
196 } 205 }
197 206
198 bool ManagePasswordsUIController::PasswordPendingUserDecision() const { 207 bool ManagePasswordsUIController::PasswordPendingUserDecision() const {
199 return state_ == password_manager::ui::PENDING_PASSWORD_STATE || 208 return state_ == password_manager::ui::PENDING_PASSWORD_STATE ||
200 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE; 209 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE;
201 } 210 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698