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

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

Issue 924733003: Credential Manager API pops up an auto-signin toast. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 display_disposition_ = metrics_util::MANUAL_BLACKLISTED; 175 display_disposition_ = metrics_util::MANUAL_BLACKLISTED;
176 } else { 176 } else {
177 display_disposition_ = metrics_util::MANUAL_MANAGE_PASSWORDS; 177 display_disposition_ = metrics_util::MANUAL_MANAGE_PASSWORDS;
178 } 178 }
179 } else { 179 } else {
180 if (state_ == password_manager::ui::CONFIRMATION_STATE) { 180 if (state_ == password_manager::ui::CONFIRMATION_STATE) {
181 display_disposition_ = 181 display_disposition_ =
182 metrics_util::AUTOMATIC_GENERATED_PASSWORD_CONFIRMATION; 182 metrics_util::AUTOMATIC_GENERATED_PASSWORD_CONFIRMATION;
183 } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) { 183 } else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
184 display_disposition_ = metrics_util::AUTOMATIC_CREDENTIAL_REQUEST; 184 display_disposition_ = metrics_util::AUTOMATIC_CREDENTIAL_REQUEST;
185 } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
186 display_disposition_ = metrics_util::AUTOMATIC_AUTO_SIGNIN_TOAST;
Mike West 2015/02/18 22:28:04 Nit: AUTOMATIC_AUTO is a bit much. How about AUTOM
vasilii 2015/02/19 09:37:34 Done.
185 } else { 187 } else {
186 display_disposition_ = metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING; 188 display_disposition_ = metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING;
187 } 189 }
188 } 190 }
189 if (password_manager::ui::IsAskSubmitURLState(state_)) 191 if (password_manager::ui::IsAskSubmitURLState(state_))
190 RecordURLsCollectionExperimentStatistics(web_contents()); 192 RecordURLsCollectionExperimentStatistics(web_contents());
191 metrics_util::LogUIDisplayDisposition(display_disposition_); 193 metrics_util::LogUIDisplayDisposition(display_disposition_);
192 194
193 // Default to a dismissal reason of "no interaction". If the user interacts 195 // Default to a dismissal reason of "no interaction". If the user interacts
194 // with the button in such a way that it closes, we'll reset this value 196 // with the button in such a way that it closes, we'll reset this value
(...skipping 28 matching lines...) Expand all
223 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; 225 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
224 metrics_util::LogAllowToCollectURLBubbleUIDismissalReason( 226 metrics_util::LogAllowToCollectURLBubbleUIDismissalReason(
225 dismissal_reason_); 227 dismissal_reason_);
226 // Return since we do not want to include "Allow to collect URL?" bubble 228 // Return since we do not want to include "Allow to collect URL?" bubble
227 // data in other PasswordManager metrics. 229 // data in other PasswordManager metrics.
228 return; 230 return;
229 } 231 }
230 232
231 metrics_util::LogUIDismissalReason(dismissal_reason_); 233 metrics_util::LogUIDismissalReason(dismissal_reason_);
232 // Other use cases have been reported in the callbacks like OnSaveClicked(). 234 // Other use cases have been reported in the callbacks like OnSaveClicked().
233 if (dismissal_reason_ == metrics_util::NO_DIRECT_INTERACTION) 235 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE &&
Mike West 2015/02/18 22:28:04 What about clicking away in MANAGE state?
vasilii 2015/02/19 09:37:34 We care only about the "Save" bubble. The "Manage"
236 dismissal_reason_ == metrics_util::NO_DIRECT_INTERACTION)
234 RecordExperimentStatistics(web_contents(), dismissal_reason_); 237 RecordExperimentStatistics(web_contents(), dismissal_reason_);
235 } 238 }
236 239
237 void ManagePasswordsBubbleModel::OnCollectURLClicked(const std::string& url) { 240 void ManagePasswordsBubbleModel::OnCollectURLClicked(const std::string& url) {
238 dismissal_reason_ = metrics_util::CLICKED_COLLECT_URL; 241 dismissal_reason_ = metrics_util::CLICKED_COLLECT_URL;
239 RecordExperimentStatistics(web_contents(), dismissal_reason_);
240 // User interaction with bubble has happened, do not need to show bubble 242 // User interaction with bubble has happened, do not need to show bubble
241 // in case it was before transition to another page. 243 // in case it was before transition to another page.
242 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; 244 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
243 #if !defined(OS_ANDROID) 245 #if !defined(OS_ANDROID)
244 URLCollectionFeedbackSender feedback_sender( 246 URLCollectionFeedbackSender feedback_sender(
245 web_contents()->GetBrowserContext(), url); 247 web_contents()->GetBrowserContext(), url);
246 feedback_sender.SendFeedback(); 248 feedback_sender.SendFeedback();
247 #endif 249 #endif
248 } 250 }
249 251
250 void ManagePasswordsBubbleModel::OnDoNotCollectURLClicked() { 252 void ManagePasswordsBubbleModel::OnDoNotCollectURLClicked() {
251 dismissal_reason_ = metrics_util::CLICKED_DO_NOT_COLLECT_URL; 253 dismissal_reason_ = metrics_util::CLICKED_DO_NOT_COLLECT_URL;
252 RecordExperimentStatistics(web_contents(), dismissal_reason_);
253 // User interaction with bubble has happened, do not need to show bubble 254 // User interaction with bubble has happened, do not need to show bubble
254 // in case it was before transition to another page. 255 // in case it was before transition to another page.
255 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; 256 state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
256 } 257 }
257 258
258 void ManagePasswordsBubbleModel::OnNopeClicked() { 259 void ManagePasswordsBubbleModel::OnNopeClicked() {
259 dismissal_reason_ = metrics_util::CLICKED_NOPE; 260 dismissal_reason_ = metrics_util::CLICKED_NOPE;
260 RecordExperimentStatistics(web_contents(), dismissal_reason_); 261 RecordExperimentStatistics(web_contents(), dismissal_reason_);
261 if (state_ != password_manager::ui::CREDENTIAL_REQUEST_STATE) 262 if (state_ != password_manager::ui::CREDENTIAL_REQUEST_STATE)
262 state_ = password_manager::ui::PENDING_PASSWORD_STATE; 263 state_ = password_manager::ui::PENDING_PASSWORD_STATE;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 void ManagePasswordsBubbleModel::OnOKClicked() { 308 void ManagePasswordsBubbleModel::OnOKClicked() {
308 dismissal_reason_ = metrics_util::CLICKED_OK; 309 dismissal_reason_ = metrics_util::CLICKED_OK;
309 } 310 }
310 311
311 void ManagePasswordsBubbleModel::OnManageLinkClicked() { 312 void ManagePasswordsBubbleModel::OnManageLinkClicked() {
312 dismissal_reason_ = metrics_util::CLICKED_MANAGE; 313 dismissal_reason_ = metrics_util::CLICKED_MANAGE;
313 ManagePasswordsUIController::FromWebContents(web_contents()) 314 ManagePasswordsUIController::FromWebContents(web_contents())
314 ->NavigateToPasswordManagerSettingsPage(); 315 ->NavigateToPasswordManagerSettingsPage();
315 } 316 }
316 317
318 void ManagePasswordsBubbleModel::OnAutoSignInToastTimeout() {
319 dismissal_reason_ = metrics_util::AUTO_SIGNIN_TOAST_TIMEOUT;
320 }
321
317 void ManagePasswordsBubbleModel::OnPasswordAction( 322 void ManagePasswordsBubbleModel::OnPasswordAction(
318 const autofill::PasswordForm& password_form, 323 const autofill::PasswordForm& password_form,
319 PasswordAction action) { 324 PasswordAction action) {
320 if (!web_contents()) 325 if (!web_contents())
321 return; 326 return;
322 Profile* profile = 327 Profile* profile =
323 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 328 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
324 password_manager::PasswordStore* password_store = 329 password_manager::PasswordStore* password_store =
325 PasswordStoreFactory::GetForProfile( 330 PasswordStoreFactory::GetForProfile(
326 profile, ServiceAccessType::EXPLICIT_ACCESS).get(); 331 profile, ServiceAccessType::EXPLICIT_ACCESS).get();
(...skipping 22 matching lines...) Expand all
349 354
350 // static 355 // static
351 int ManagePasswordsBubbleModel::UsernameFieldWidth() { 356 int ManagePasswordsBubbleModel::UsernameFieldWidth() {
352 return GetFieldWidth(USERNAME_FIELD); 357 return GetFieldWidth(USERNAME_FIELD);
353 } 358 }
354 359
355 // static 360 // static
356 int ManagePasswordsBubbleModel::PasswordFieldWidth() { 361 int ManagePasswordsBubbleModel::PasswordFieldWidth() {
357 return GetFieldWidth(PASSWORD_FIELD); 362 return GetFieldWidth(PASSWORD_FIELD);
358 } 363 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698