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

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

Issue 259153004: Password bubble: Give users the option of unblacklisting a site. (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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_bubble_ui_controller.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.h"
6 6
7 #include "chrome/browser/chrome_notification_types.h" 7 #include "chrome/browser/chrome_notification_types.h"
8 #include "chrome/browser/password_manager/password_store_factory.h" 8 #include "chrome/browser/password_manager/password_store_factory.h"
9 #include "chrome/browser/ui/browser_finder.h" 9 #include "chrome/browser/ui/browser_finder.h"
10 #include "chrome/browser/ui/browser_window.h" 10 #include "chrome/browser/ui/browser_window.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 const PasswordFormMap& password_form_map) { 73 const PasswordFormMap& password_form_map) {
74 password_form_map_ = password_form_map; 74 password_form_map_ = password_form_map;
75 origin_ = password_form_map_.begin()->second->origin; 75 origin_ = password_form_map_.begin()->second->origin;
76 manage_passwords_icon_to_be_shown_ = true; 76 manage_passwords_icon_to_be_shown_ = true;
77 password_to_be_saved_ = false; 77 password_to_be_saved_ = false;
78 manage_passwords_bubble_needs_showing_ = false; 78 manage_passwords_bubble_needs_showing_ = false;
79 autofill_blocked_ = false; 79 autofill_blocked_ = false;
80 UpdateBubbleAndIconVisibility(); 80 UpdateBubbleAndIconVisibility();
81 } 81 }
82 82
83 void ManagePasswordsBubbleUIController::OnBlacklistBlockedAutofill() { 83 void ManagePasswordsBubbleUIController::OnBlacklistBlockedAutofill(
84 const PasswordFormMap& password_form_map) {
85 password_form_map_ = password_form_map;
86 origin_ = password_form_map_.begin()->second->origin;
84 manage_passwords_icon_to_be_shown_ = true; 87 manage_passwords_icon_to_be_shown_ = true;
85 password_to_be_saved_ = false; 88 password_to_be_saved_ = false;
86 manage_passwords_bubble_needs_showing_ = false; 89 manage_passwords_bubble_needs_showing_ = false;
87 autofill_blocked_ = true; 90 autofill_blocked_ = true;
88 UpdateBubbleAndIconVisibility(); 91 UpdateBubbleAndIconVisibility();
89 } 92 }
90 93
91 void ManagePasswordsBubbleUIController::WebContentsDestroyed( 94 void ManagePasswordsBubbleUIController::WebContentsDestroyed(
92 content::WebContents* web_contents) { 95 content::WebContents* web_contents) {
93 password_manager::PasswordStore* password_store = 96 password_manager::PasswordStore* password_store =
(...skipping 29 matching lines...) Expand all
123 #if !defined(OS_ANDROID) 126 #if !defined(OS_ANDROID)
124 chrome::ShowSettingsSubPage( 127 chrome::ShowSettingsSubPage(
125 chrome::FindBrowserWithWebContents(web_contents()), 128 chrome::FindBrowserWithWebContents(web_contents()),
126 chrome::kPasswordManagerSubPage); 129 chrome::kPasswordManagerSubPage);
127 #endif 130 #endif
128 } 131 }
129 132
130 void ManagePasswordsBubbleUIController::SavePassword() { 133 void ManagePasswordsBubbleUIController::SavePassword() {
131 DCHECK(form_manager_.get()); 134 DCHECK(form_manager_.get());
132 form_manager_->Save(); 135 form_manager_->Save();
136 password_to_be_saved_ = false;
133 } 137 }
134 138
135 void ManagePasswordsBubbleUIController::NeverSavePassword() { 139 void ManagePasswordsBubbleUIController::NeverSavePassword() {
136 DCHECK(form_manager_.get()); 140 DCHECK(form_manager_.get());
137 form_manager_->PermanentlyBlacklist(); 141 form_manager_->PermanentlyBlacklist();
142 autofill_blocked_ = true;
143 password_to_be_saved_ = false;
144 UpdateBubbleAndIconVisibility();
145 }
146
147 void ManagePasswordsBubbleUIController::UnblacklistSite() {
148 // We're in one of two states: either the user _just_ blacklisted the site
149 // by clicking "Never save" in the pending bubble, or the user is visiting
150 // a blacklisted site.
151 //
152 // Either way, |password_form_map_| has been populated with the relevant
153 // form. We can safely pull it out, send it over to the password store
154 // for removal, and update our internal state.
155 DCHECK(!password_form_map_.empty());
156 password_manager::PasswordStore* password_store =
157 GetPasswordStore(web_contents());
158 if (password_store)
159 password_store->RemoveLogin(*password_form_map_.begin()->second);
160 autofill_blocked_ = false;
161 UpdateBubbleAndIconVisibility();
138 } 162 }
139 163
140 void ManagePasswordsBubbleUIController::DidNavigateMainFrame( 164 void ManagePasswordsBubbleUIController::DidNavigateMainFrame(
141 const content::LoadCommittedDetails& details, 165 const content::LoadCommittedDetails& details,
142 const content::FrameNavigateParams& params) { 166 const content::FrameNavigateParams& params) {
143 if (details.is_in_page) 167 if (details.is_in_page)
144 return; 168 return;
145 // Reset password states for next page. 169 // Reset password states for next page.
146 manage_passwords_icon_to_be_shown_ = false; 170 manage_passwords_icon_to_be_shown_ = false;
147 password_to_be_saved_ = false; 171 password_to_be_saved_ = false;
(...skipping 21 matching lines...) Expand all
169 icon->SetState(state); 193 icon->SetState(state);
170 194
171 if (manage_passwords_bubble_needs_showing_) { 195 if (manage_passwords_bubble_needs_showing_) {
172 DCHECK(state == ManagePasswordsIcon::PENDING_STATE); 196 DCHECK(state == ManagePasswordsIcon::PENDING_STATE);
173 // TODO(mkwst): Replace this with execution of a browser command once we 197 // TODO(mkwst): Replace this with execution of a browser command once we
174 // can pipe a CommandUpdater down here. 198 // can pipe a CommandUpdater down here.
175 icon->ShowBubbleWithoutUserInteraction(); 199 icon->ShowBubbleWithoutUserInteraction();
176 manage_passwords_bubble_needs_showing_ = false; 200 manage_passwords_bubble_needs_showing_ = false;
177 } 201 }
178 } 202 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698