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

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

Issue 2912783002: Measure how often PSL and same-organization name credentials are suppressed. (Closed)
Patch Set: Addressed comments from kolos@. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_form_manager.h
diff --git a/components/password_manager/core/browser/password_form_manager.h b/components/password_manager/core/browser/password_form_manager.h
index 728a18d8cf9198de8de16c419e381df354b6bb18..2bc3bb26ab82321cbdfe765e1524f1a9e4ff1157 100644
--- a/components/password_manager/core/browser/password_form_manager.h
+++ b/components/password_manager/core/browser/password_form_manager.h
@@ -332,18 +332,16 @@ class PasswordFormManager : public FormFetcher::Consumer {
static const int kMaxNumActionsTaken =
kManagerActionMax * kUserActionMax * kSubmitResultMax;
- // Enumerates whether there was a `suppressed` stored credential, meaning that
- // it was not filled because it was for an origin that was similar to, but not
- // exactly (or PSL) matching the origin of |observed_form_|. Currently, the
- // only class of suppressed credentials considered are HTTPS credentials not
- // filled on the HTTP version of the origin.
+ // Enumerates whether there were `suppressed` credentials. These are stored
+ // credentials that were not filled, even though they might be related to the
+ // |observed_form_|. See FormFetcher::GetSuppressed* for details.
//
- // If a suppressed credential exists, it is also recorded whether its username
- // and password matched those entered or filled into the observed form.
+ // If suppressed credentials exist, it is also recorded whether their username
+ // and/or password matched those submitted.
enum SuppressedAccountExistence {
kSuppressedAccountNone,
- // Recorded when there exists a suppressed credential, but there was no
- // submitted form to compare the username and password to.
+ // Recorded when there exists a suppressed account, but there was no
+ // submitted form to compare its username and password to.
kSuppressedAccountExists,
// Recorded when there was a submitted form.
kSuppressedAccountExistsDifferentUsername,
@@ -432,12 +430,22 @@ class PasswordFormManager : public FormFetcher::Consumer {
// UMA.
int GetActionsTaken() const;
- // Computes statistics on whether there was a stored credential with the
- // specified |type| that could not be filled into the |observed_form_| because
- // the scheme of its origin was HTTPS rather than HTTP; and encodes this
- // information into an integer so it can be recorded as a UMA histogram.
- int GetStatsForSuppressedHTTPSAccount(
- autofill::PasswordForm::Type type) const;
+ // When supplied with the list of all |suppressed_forms| that belong to
+ // certain suppressed credential type (see FormFetcher::GetSuppressed*),
+ // filters that list down to forms that are either |manual_or_generated|, and
+ // based on that, computes the histogram sample that is a mixed-based
+ // representation of a combination of four attributes:
+ // -- whether there were suppressed credentials (and if so, their relation to
+ // the submitted username/password).
+ // -- whether the |observed_form_| got ultimately submitted
+ // -- what action the password manager performed (|manager_action_|),
+ // -- and what action the user performed (|user_action_|_).
+ int GetHistogramSampleForSuppressedAccounts(
+ const std::vector<const autofill::PasswordForm*> suppressed_forms,
+ autofill::PasswordForm::Type manual_or_generated) const;
+
+ // Records all histograms in the PasswordManager.SuppressedAccount.* family.
+ void RecordHistogramsOnSuppressedAccounts() const;
// Tries to set all votes (e.g. autofill field types, generation vote) to
// a |FormStructure| and upload it to the server. Returns true on success.

Powered by Google App Engine
This is Rietveld 408576698