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

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

Issue 928753003: Clean password_manager::ui::State (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clear more Created 5 years, 10 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
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_model.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
6 6
7 #include "chrome/browser/password_manager/password_store_factory.h" 7 #include "chrome/browser/password_manager/password_store_factory.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_finder.h" 10 #include "chrome/browser/ui/browser_finder.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 content::WebContents* web_contents) 113 content::WebContents* web_contents)
114 : content::WebContentsObserver(web_contents), 114 : content::WebContentsObserver(web_contents),
115 never_save_passwords_(false), 115 never_save_passwords_(false),
116 display_disposition_(metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING), 116 display_disposition_(metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING),
117 dismissal_reason_(metrics_util::NOT_DISPLAYED) { 117 dismissal_reason_(metrics_util::NOT_DISPLAYED) {
118 ManagePasswordsUIController* controller = 118 ManagePasswordsUIController* controller =
119 ManagePasswordsUIController::FromWebContents(web_contents); 119 ManagePasswordsUIController::FromWebContents(web_contents);
120 120
121 origin_ = controller->origin(); 121 origin_ = controller->origin();
122 state_ = controller->state(); 122 state_ = controller->state();
123 if (password_manager::ui::IsPendingState(state_)) 123 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE)
124 pending_password_ = controller->PendingPassword(); 124 pending_password_ = controller->PendingPassword();
125 if (password_manager::ui::IsCredentialsState(state_)) { 125 if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
126 local_pending_credentials_.swap(controller->local_credentials_forms()); 126 local_pending_credentials_.swap(controller->local_credentials_forms());
127 federated_pending_credentials_.swap( 127 federated_pending_credentials_.swap(
128 controller->federated_credentials_forms()); 128 controller->federated_credentials_forms());
129 } else { 129 } else {
130 best_matches_ = controller->best_matches(); 130 best_matches_ = controller->best_matches();
131 } 131 }
132 132
133 if (password_manager::ui::IsPendingState(state_)) { 133 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) {
134 title_ = PendingStateTitleBasedOnSavePasswordPref(never_save_passwords_); 134 title_ = PendingStateTitleBasedOnSavePasswordPref(never_save_passwords_);
135 } else if (state_ == password_manager::ui::BLACKLIST_STATE) { 135 } else if (state_ == password_manager::ui::BLACKLIST_STATE) {
136 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_BLACKLISTED_TITLE); 136 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_BLACKLISTED_TITLE);
137 } else if (state_ == password_manager::ui::CONFIRMATION_STATE) { 137 } else if (state_ == password_manager::ui::CONFIRMATION_STATE) {
138 title_ = 138 title_ =
139 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE); 139 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE);
140 } else if (password_manager::ui::IsCredentialsState(state_)) { 140 } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
141 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CHOOSE_TITLE); 141 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CHOOSE_TITLE);
142 } else if (password_manager::ui::IsAskSubmitURLState(state_)) { 142 } else if (password_manager::ui::IsAskSubmitURLState(state_)) {
143 title_ = 143 title_ =
144 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_ASK_TO_SUBMIT_URL_TITLE); 144 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_ASK_TO_SUBMIT_URL_TITLE);
145 } else { 145 } else {
146 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_TITLE); 146 title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_TITLE);
147 } 147 }
148 148
149 base::string16 save_confirmation_link = 149 base::string16 save_confirmation_link =
150 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_LINK); 150 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_LINK);
151 size_t offset; 151 size_t offset;
152 save_confirmation_text_ = 152 save_confirmation_text_ =
153 l10n_util::GetStringFUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT, 153 l10n_util::GetStringFUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT,
154 save_confirmation_link, &offset); 154 save_confirmation_link, &offset);
155 save_confirmation_link_range_ = 155 save_confirmation_link_range_ =
156 gfx::Range(offset, offset + save_confirmation_link.length()); 156 gfx::Range(offset, offset + save_confirmation_link.length());
157 157
158 manage_link_ = 158 manage_link_ =
159 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK); 159 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
160 } 160 }
161 161
162 ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {} 162 ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {}
163 163
164 void ManagePasswordsBubbleModel::OnBubbleShown( 164 void ManagePasswordsBubbleModel::OnBubbleShown(
165 ManagePasswordsBubble::DisplayReason reason) { 165 ManagePasswordsBubble::DisplayReason reason) {
166 if (reason == ManagePasswordsBubble::USER_ACTION) { 166 if (reason == ManagePasswordsBubble::USER_ACTION) {
167 if (password_manager::ui::IsPendingState(state_)) { 167 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) {
168 display_disposition_ = metrics_util::MANUAL_WITH_PASSWORD_PENDING; 168 display_disposition_ = metrics_util::MANUAL_WITH_PASSWORD_PENDING;
169 } else if (state_ == password_manager::ui::BLACKLIST_STATE) { 169 } else if (state_ == password_manager::ui::BLACKLIST_STATE) {
170 display_disposition_ = metrics_util::MANUAL_BLACKLISTED; 170 display_disposition_ = metrics_util::MANUAL_BLACKLISTED;
171 } else { 171 } else {
172 display_disposition_ = metrics_util::MANUAL_MANAGE_PASSWORDS; 172 display_disposition_ = metrics_util::MANUAL_MANAGE_PASSWORDS;
173 } 173 }
174 } else { 174 } else {
175 if (state_ == password_manager::ui::CONFIRMATION_STATE) { 175 if (state_ == password_manager::ui::CONFIRMATION_STATE) {
176 display_disposition_ = 176 display_disposition_ =
177 metrics_util::AUTOMATIC_GENERATED_PASSWORD_CONFIRMATION; 177 metrics_util::AUTOMATIC_GENERATED_PASSWORD_CONFIRMATION;
178 } else if (password_manager::ui::IsCredentialsState(state_)) { 178 } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
179 display_disposition_ = metrics_util::AUTOMATIC_CREDENTIAL_REQUEST; 179 display_disposition_ = metrics_util::AUTOMATIC_CREDENTIAL_REQUEST;
180 } else { 180 } else {
181 display_disposition_ = metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING; 181 display_disposition_ = metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING;
182 } 182 }
183 } 183 }
184 if (password_manager::ui::IsAskSubmitURLState(state_)) 184 if (password_manager::ui::IsAskSubmitURLState(state_))
185 RecordURLsCollectionExperimentStatistics(web_contents()); 185 RecordURLsCollectionExperimentStatistics(web_contents());
186 metrics_util::LogUIDisplayDisposition(display_disposition_); 186 metrics_util::LogUIDisplayDisposition(display_disposition_);
187 187
188 // Default to a dismissal reason of "no interaction". If the user interacts 188 // Default to a dismissal reason of "no interaction". If the user interacts
189 // with the button in such a way that it closes, we'll reset this value 189 // with the button in such a way that it closes, we'll reset this value
190 // accordingly. 190 // accordingly.
191 dismissal_reason_ = metrics_util::NO_DIRECT_INTERACTION; 191 dismissal_reason_ = metrics_util::NO_DIRECT_INTERACTION;
192 192
193 ManagePasswordsUIController* controller = 193 ManagePasswordsUIController* controller =
194 ManagePasswordsUIController::FromWebContents(web_contents()); 194 ManagePasswordsUIController::FromWebContents(web_contents());
195 controller->OnBubbleShown(); 195 controller->OnBubbleShown();
196 } 196 }
197 197
198 void ManagePasswordsBubbleModel::OnBubbleHidden() { 198 void ManagePasswordsBubbleModel::OnBubbleHidden() {
199 if (password_manager::ui::IsCredentialsState(state_) && web_contents()) { 199 ManagePasswordsUIController* manage_passwords_ui_controller =
200 web_contents() ?
201 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
202 : nullptr;
203 if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE &&
204 manage_passwords_ui_controller) {
200 // It's time to run the pending callback if it wasn't called in 205 // It's time to run the pending callback if it wasn't called in
201 // OnChooseCredentials(). 206 // OnChooseCredentials().
202 ManagePasswordsUIController* manage_passwords_ui_controller =
203 ManagePasswordsUIController::FromWebContents(web_contents());
204 manage_passwords_ui_controller->ChooseCredential( 207 manage_passwords_ui_controller->ChooseCredential(
205 autofill::PasswordForm(), 208 autofill::PasswordForm(),
206 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); 209 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
207 state_ = password_manager::ui::INACTIVE_STATE; 210 state_ = password_manager::ui::INACTIVE_STATE;
208 } 211 }
212 if (manage_passwords_ui_controller)
213 manage_passwords_ui_controller->OnBubbleHidden();
209 if (dismissal_reason_ == metrics_util::NOT_DISPLAYED) 214 if (dismissal_reason_ == metrics_util::NOT_DISPLAYED)
210 return; 215 return;
211 216
212 if (password_manager::ui::IsAskSubmitURLState(state_)) { 217 if (password_manager::ui::IsAskSubmitURLState(state_)) {
213 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; 218 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
214 metrics_util::LogAllowToCollectURLBubbleUIDismissalReason( 219 metrics_util::LogAllowToCollectURLBubbleUIDismissalReason(
215 dismissal_reason_); 220 dismissal_reason_);
216 // Return since we do not want to include "Allow to collect URL?" bubble 221 // Return since we do not want to include "Allow to collect URL?" bubble
217 // data in other PasswordManager metrics. 222 // data in other PasswordManager metrics.
218 return; 223 return;
(...skipping 22 matching lines...) Expand all
241 dismissal_reason_ = metrics_util::CLICKED_DO_NOT_COLLECT_URL; 246 dismissal_reason_ = metrics_util::CLICKED_DO_NOT_COLLECT_URL;
242 RecordExperimentStatistics(web_contents(), dismissal_reason_); 247 RecordExperimentStatistics(web_contents(), dismissal_reason_);
243 // User interaction with bubble has happened, do not need to show bubble 248 // User interaction with bubble has happened, do not need to show bubble
244 // in case it was before transition to another page. 249 // in case it was before transition to another page.
245 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; 250 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
246 } 251 }
247 252
248 void ManagePasswordsBubbleModel::OnNopeClicked() { 253 void ManagePasswordsBubbleModel::OnNopeClicked() {
249 dismissal_reason_ = metrics_util::CLICKED_NOPE; 254 dismissal_reason_ = metrics_util::CLICKED_NOPE;
250 RecordExperimentStatistics(web_contents(), dismissal_reason_); 255 RecordExperimentStatistics(web_contents(), dismissal_reason_);
251 if (!password_manager::ui::IsCredentialsState(state_)) 256 if (state_ != password_manager::ui::CREDENTIAL_REQUEST_STATE)
252 state_ = password_manager::ui::PENDING_PASSWORD_STATE; 257 state_ = password_manager::ui::PENDING_PASSWORD_STATE;
253 } 258 }
254 259
255 void ManagePasswordsBubbleModel::OnConfirmationForNeverForThisSite() { 260 void ManagePasswordsBubbleModel::OnConfirmationForNeverForThisSite() {
256 never_save_passwords_ = true; 261 never_save_passwords_ = true;
257 title_ = PendingStateTitleBasedOnSavePasswordPref(never_save_passwords_); 262 title_ = PendingStateTitleBasedOnSavePasswordPref(never_save_passwords_);
258 } 263 }
259 264
260 void ManagePasswordsBubbleModel::OnUndoNeverForThisSite() { 265 void ManagePasswordsBubbleModel::OnUndoNeverForThisSite() {
261 never_save_passwords_ = false; 266 never_save_passwords_ = false;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 344
340 // static 345 // static
341 int ManagePasswordsBubbleModel::UsernameFieldWidth() { 346 int ManagePasswordsBubbleModel::UsernameFieldWidth() {
342 return GetFieldWidth(USERNAME_FIELD); 347 return GetFieldWidth(USERNAME_FIELD);
343 } 348 }
344 349
345 // static 350 // static
346 int ManagePasswordsBubbleModel::PasswordFieldWidth() { 351 int ManagePasswordsBubbleModel::PasswordFieldWidth() {
347 return GetFieldWidth(PASSWORD_FIELD); 352 return GetFieldWidth(PASSWORD_FIELD);
348 } 353 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698