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

Unified Diff: components/password_manager/core/browser/password_form_manager.cc

Issue 1049003002: [Password Manager] Add UMA stats for submitted form type (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_form_manager.cc
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc
index d088c8183bf00271ba8420ad94c50f025fb49ac9..3a519474535d53e740681693b168b3af78ee05f9 100644
--- a/components/password_manager/core/browser/password_form_manager.cc
+++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -96,6 +96,7 @@ PasswordFormManager::PasswordFormManager(
has_generated_password_(false),
password_manager_(password_manager),
preferred_match_(nullptr),
+ is_ignorable_change_password_form_(false),
state_(PRE_MATCHING_PHASE),
client_(client),
manager_action_(kManagerActionNone),
@@ -111,6 +112,10 @@ PasswordFormManager::~PasswordFormManager() {
"PasswordManager.ActionsTakenV3", GetActionsTaken(), kMaxNumActionsTaken);
if (has_generated_password_ && submit_result_ == kSubmitResultNotSubmitted)
LogPasswordGenerationSubmissionEvent(PASSWORD_NOT_SUBMITTED);
+ if (submit_result_ != kSubmitResultNotSubmitted) {
+ UMA_HISTOGRAM_ENUMERATION("PasswordManager.SubmittedFormType", form_type_,
+ kFormTypeMax);
+ }
}
int PasswordFormManager::GetActionsTaken() const {
@@ -409,13 +414,38 @@ bool PasswordFormManager::HasCompletedMatching() const {
return state_ == POST_MATCHING_PHASE;
}
-bool PasswordFormManager::IsIgnorableChangePasswordForm(
- const PasswordForm& form) const {
+void PasswordFormManager::SetSubmittedForm(const autofill::PasswordForm& form) {
bool is_change_password_form =
!form.new_password_value.empty() && !form.password_value.empty();
- return is_change_password_form && !form.username_marked_by_site &&
- !DoesUsenameAndPasswordMatchCredentials(
- form.username_value, form.password_value, best_matches_);
+ is_ignorable_change_password_form_ =
+ is_change_password_form && !form.username_marked_by_site &&
+ !DoesUsenameAndPasswordMatchCredentials(
+ form.username_value, form.password_value, best_matches_);
+ bool is_signup_form =
+ !form.new_password_value.empty() && form.password_value.empty();
+ bool no_username = form.username_element.empty();
+
+ if (form.layout == PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP) {
+ form_type_ = kFormTypeLoginAndSignup;
+ } else if (is_ignorable_change_password_form_) {
+ if (no_username)
+ form_type_ = kFormTypeChangePasswordNoUsername;
+ else
+ form_type_ = kFormTypeChangePasswordDisabled;
+ } else if (is_change_password_form) {
+ form_type_ = kFormTypeChangePasswordEnabled;
+ } else if (is_signup_form) {
+ if (no_username)
+ form_type_ = kFormTypeSignupNoUsername;
+ else
+ form_type_ = kFormTypeSignup;
+ } else if (no_username) {
+ form_type_ = kFormTypeLoginNoUsername;
+ }
+}
+
+bool PasswordFormManager::IsIgnorableChangePasswordForm() {
+ return is_ignorable_change_password_form_;
vabr (Chromium) 2015/03/31 10:08:17 Add a DCHECK that form_type_ has been set?
Garrett Casto 2015/04/01 22:34:48 Done.
}
void PasswordFormManager::OnRequestDone(

Powered by Google App Engine
This is Rietveld 408576698