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

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: Rebase 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 1b56d09226f91b40334242d5f46a40edc1b40f36..8f2305531eea7e9b3dbbe966ab35076a33f987d7 100644
--- a/components/password_manager/core/browser/password_form_manager.cc
+++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -96,11 +96,13 @@ 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),
user_action_(kUserActionNone),
- submit_result_(kSubmitResultNotSubmitted) {
+ submit_result_(kSubmitResultNotSubmitted),
+ form_type_(kFormTypeUnspecified) {
drivers_.push_back(driver);
if (observed_form_.origin.is_valid())
base::SplitString(observed_form_.origin.path(), '/', &form_path_tokens_);
@@ -111,6 +113,10 @@ PasswordFormManager::~PasswordFormManager() {
"PasswordManager.ActionsTakenV3", GetActionsTaken(), kMaxNumActionsTaken);
if (has_generated_password_ && submit_result_ == kSubmitResultNotSubmitted)
LogPasswordGenerationSubmissionEvent(PASSWORD_NOT_SUBMITTED);
+ if (form_type_ != kFormTypeUnspecified) {
+ UMA_HISTOGRAM_ENUMERATION("PasswordManager.SubmittedFormType", form_type_,
+ kFormTypeMax);
+ }
}
int PasswordFormManager::GetActionsTaken() const {
@@ -415,13 +421,36 @@ 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;
+ } else {
+ form_type_ = kFormTypeLogin;
+ }
}
void PasswordFormManager::OnRequestDone(

Powered by Google App Engine
This is Rietveld 408576698