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

Unified Diff: components/autofill/core/browser/autofill_metrics.cc

Issue 714273003: [Autofill, Clean-up] Clean up the Autofill metrics tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: anonymouse -> anonymous Created 6 years, 1 month 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
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_metrics_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/autofill/core/browser/autofill_metrics.cc
diff --git a/components/autofill/core/browser/autofill_metrics.cc b/components/autofill/core/browser/autofill_metrics.cc
index 548a23259d7d1b30cd2b134ed721765f5aae44d7..c3a271ac617536a764aebff0962bc9fd21e68152 100644
--- a/components/autofill/core/browser/autofill_metrics.cc
+++ b/components/autofill/core/browser/autofill_metrics.cc
@@ -17,27 +17,29 @@ namespace autofill {
namespace {
enum FieldTypeGroupForMetrics {
- AMBIGUOUS = 0,
- NAME,
- COMPANY,
- ADDRESS_LINE_1,
- ADDRESS_LINE_2,
- ADDRESS_CITY,
- ADDRESS_STATE,
- ADDRESS_ZIP,
- ADDRESS_COUNTRY,
- PHONE,
- FAX, // Deprecated.
- EMAIL,
- CREDIT_CARD_NAME,
- CREDIT_CARD_NUMBER,
- CREDIT_CARD_DATE,
- CREDIT_CARD_TYPE,
- PASSWORD,
- ADDRESS_LINE_3,
+ GROUP_AMBIGUOUS = 0,
+ GROUP_NAME,
+ GROUP_COMPANY,
+ GROUP_ADDRESS_LINE_1,
+ GROUP_ADDRESS_LINE_2,
+ GROUP_ADDRESS_CITY,
+ GROUP_ADDRESS_STATE,
+ GROUP_ADDRESS_ZIP,
+ GROUP_ADDRESS_COUNTRY,
+ GROUP_PHONE,
+ GROUP_FAX, // Deprecated.
+ GROUP_EMAIL,
+ GROUP_CREDIT_CARD_NAME,
+ GROUP_CREDIT_CARD_NUMBER,
+ GROUP_CREDIT_CARD_DATE,
+ GROUP_CREDIT_CARD_TYPE,
+ GROUP_PASSWORD,
+ GROUP_ADDRESS_LINE_3,
NUM_FIELD_TYPE_GROUPS_FOR_METRICS
};
+} // namespace
+
// First, translates |field_type| to the corresponding logical |group| from
// |FieldTypeGroupForMetrics|. Then, interpolates this with the given |metric|,
// which should be in the range [0, |num_possible_metrics|).
@@ -59,105 +61,110 @@ enum FieldTypeGroupForMetrics {
//
// Clients must ensure that |field_type| is one of the types Chrome supports
// natively, e.g. |field_type| must not be a billng address.
-int GetFieldTypeGroupMetric(const ServerFieldType field_type,
- const int metric,
- const int num_possible_metrics) {
- DCHECK_LT(metric, num_possible_metrics);
-
- FieldTypeGroupForMetrics group = AMBIGUOUS;
+// NOTE: This is defined outside of the anonymous namespace so that it can be
+// accessed from the unit test file. It is not exposed in the header file,
+// however, because it is not intended for consumption outside of the metrics
+// implementation.
+int GetFieldTypeGroupMetric(ServerFieldType field_type,
+ AutofillMetrics::FieldTypeQualityMetric metric) {
+ DCHECK_LT(metric, AutofillMetrics::NUM_FIELD_TYPE_QUALITY_METRICS);
+
+ FieldTypeGroupForMetrics group = GROUP_AMBIGUOUS;
switch (AutofillType(field_type).group()) {
- case ::autofill::NO_GROUP:
- group = AMBIGUOUS;
+ case NO_GROUP:
+ group = GROUP_AMBIGUOUS;
break;
- case ::autofill::NAME:
- case ::autofill::NAME_BILLING:
- group = NAME;
+ case NAME:
+ case NAME_BILLING:
+ group = GROUP_NAME;
break;
- case ::autofill::COMPANY:
- group = COMPANY;
+ case COMPANY:
+ group = GROUP_COMPANY;
break;
- case ::autofill::ADDRESS_HOME:
- case ::autofill::ADDRESS_BILLING:
+ case ADDRESS_HOME:
+ case ADDRESS_BILLING:
switch (AutofillType(field_type).GetStorableType()) {
case ADDRESS_HOME_LINE1:
- group = ADDRESS_LINE_1;
+ group = GROUP_ADDRESS_LINE_1;
break;
case ADDRESS_HOME_LINE2:
- group = ADDRESS_LINE_2;
+ group = GROUP_ADDRESS_LINE_2;
break;
case ADDRESS_HOME_LINE3:
- group = ADDRESS_LINE_3;
+ group = GROUP_ADDRESS_LINE_3;
break;
case ADDRESS_HOME_CITY:
- group = ADDRESS_CITY;
+ group = GROUP_ADDRESS_CITY;
break;
case ADDRESS_HOME_STATE:
- group = ADDRESS_STATE;
+ group = GROUP_ADDRESS_STATE;
break;
case ADDRESS_HOME_ZIP:
- group = ADDRESS_ZIP;
+ group = GROUP_ADDRESS_ZIP;
break;
case ADDRESS_HOME_COUNTRY:
- group = ADDRESS_COUNTRY;
+ group = GROUP_ADDRESS_COUNTRY;
break;
default:
NOTREACHED();
- group = AMBIGUOUS;
+ group = GROUP_AMBIGUOUS;
break;
}
break;
- case ::autofill::EMAIL:
- group = EMAIL;
+ case EMAIL:
+ group = GROUP_EMAIL;
break;
- case ::autofill::PHONE_HOME:
- case ::autofill::PHONE_BILLING:
- group = PHONE;
+ case PHONE_HOME:
+ case PHONE_BILLING:
+ group = GROUP_PHONE;
break;
- case ::autofill::CREDIT_CARD:
+ case CREDIT_CARD:
switch (field_type) {
- case ::autofill::CREDIT_CARD_NAME:
- group = CREDIT_CARD_NAME;
+ case CREDIT_CARD_NAME:
+ group = GROUP_CREDIT_CARD_NAME;
break;
- case ::autofill::CREDIT_CARD_NUMBER:
- group = CREDIT_CARD_NUMBER;
+ case CREDIT_CARD_NUMBER:
+ group = GROUP_CREDIT_CARD_NUMBER;
break;
- case ::autofill::CREDIT_CARD_TYPE:
- group = CREDIT_CARD_TYPE;
+ case CREDIT_CARD_TYPE:
+ group = GROUP_CREDIT_CARD_TYPE;
break;
- case ::autofill::CREDIT_CARD_EXP_MONTH:
- case ::autofill::CREDIT_CARD_EXP_2_DIGIT_YEAR:
- case ::autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR:
- case ::autofill::CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:
- case ::autofill::CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
- group = CREDIT_CARD_DATE;
+ case CREDIT_CARD_EXP_MONTH:
+ case CREDIT_CARD_EXP_2_DIGIT_YEAR:
+ case CREDIT_CARD_EXP_4_DIGIT_YEAR:
+ case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:
+ case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
+ group = GROUP_CREDIT_CARD_DATE;
break;
default:
NOTREACHED();
- group = AMBIGUOUS;
+ group = GROUP_AMBIGUOUS;
break;
}
break;
- case ::autofill::PASSWORD_FIELD:
- group = PASSWORD;
+ case PASSWORD_FIELD:
+ group = GROUP_PASSWORD;
break;
- case ::autofill::TRANSACTION:
+ case TRANSACTION:
NOTREACHED();
break;
}
// Interpolate the |metric| with the |group|, so that all metrics for a given
// |group| are adjacent.
- return (group * num_possible_metrics) + metric;
+ return (group * AutofillMetrics::NUM_FIELD_TYPE_QUALITY_METRICS) + metric;
}
+namespace {
+
std::string WalletApiMetricToString(
AutofillMetrics::WalletApiCallMetric metric) {
switch (metric) {
@@ -234,20 +241,18 @@ void LogUMAHistogramLongTimes(const std::string& name,
// |field_type|. Logs a sample of |metric|, which should be in the range
// [0, |num_possible_metrics|).
void LogTypeQualityMetric(const std::string& base_name,
- const int metric,
- const int num_possible_metrics,
- const ServerFieldType field_type) {
- DCHECK_LT(metric, num_possible_metrics);
-
- std::string histogram_name = base_name;
- LogUMAHistogramEnumeration(histogram_name, metric, num_possible_metrics);
-
- std::string sub_histogram_name = base_name + ".ByFieldType";
- const int field_type_group_metric =
- GetFieldTypeGroupMetric(field_type, metric, num_possible_metrics);
- const int num_field_type_group_metrics =
- num_possible_metrics * NUM_FIELD_TYPE_GROUPS_FOR_METRICS;
- LogUMAHistogramEnumeration(sub_histogram_name,
+ AutofillMetrics::FieldTypeQualityMetric metric,
+ ServerFieldType field_type) {
+ DCHECK_LT(metric, AutofillMetrics::NUM_FIELD_TYPE_QUALITY_METRICS);
+
+ LogUMAHistogramEnumeration(base_name, metric,
+ AutofillMetrics::NUM_FIELD_TYPE_QUALITY_METRICS);
+
+ int field_type_group_metric = GetFieldTypeGroupMetric(field_type, metric);
+ int num_field_type_group_metrics =
+ AutofillMetrics::NUM_FIELD_TYPE_QUALITY_METRICS *
+ NUM_FIELD_TYPE_GROUPS_FOR_METRICS;
+ LogUMAHistogramEnumeration(base_name + ".ByFieldType",
field_type_group_metric,
num_field_type_group_metrics);
}
@@ -262,7 +267,6 @@ AutofillMetrics::~AutofillMetrics() {
void AutofillMetrics::LogCreditCardInfoBarMetric(InfoBarMetric metric) const {
DCHECK_LT(metric, NUM_INFO_BAR_METRICS);
-
UMA_HISTOGRAM_ENUMERATION("Autofill.CreditCardInfoBar", metric,
NUM_INFO_BAR_METRICS);
}
@@ -350,7 +354,6 @@ void AutofillMetrics::LogWalletResponseCode(int response_code) const {
void AutofillMetrics::LogDeveloperEngagementMetric(
DeveloperEngagementMetric metric) const {
DCHECK_LT(metric, NUM_DEVELOPER_ENGAGEMENT_METRICS);
-
UMA_HISTOGRAM_ENUMERATION("Autofill.DeveloperEngagement", metric,
NUM_DEVELOPER_ENGAGEMENT_METRICS);
}
@@ -358,34 +361,29 @@ void AutofillMetrics::LogDeveloperEngagementMetric(
void AutofillMetrics::LogHeuristicTypePrediction(
FieldTypeQualityMetric metric,
ServerFieldType field_type) const {
- LogTypeQualityMetric("Autofill.Quality.HeuristicType",
- metric, NUM_FIELD_TYPE_QUALITY_METRICS, field_type);
+ LogTypeQualityMetric("Autofill.Quality.HeuristicType", metric, field_type);
}
void AutofillMetrics::LogOverallTypePrediction(
FieldTypeQualityMetric metric,
ServerFieldType field_type) const {
- LogTypeQualityMetric("Autofill.Quality.PredictedType",
- metric, NUM_FIELD_TYPE_QUALITY_METRICS, field_type);
+ LogTypeQualityMetric("Autofill.Quality.PredictedType", metric, field_type);
}
void AutofillMetrics::LogServerTypePrediction(
FieldTypeQualityMetric metric,
ServerFieldType field_type) const {
- LogTypeQualityMetric("Autofill.Quality.ServerType",
- metric, NUM_FIELD_TYPE_QUALITY_METRICS, field_type);
+ LogTypeQualityMetric("Autofill.Quality.ServerType", metric, field_type);
}
void AutofillMetrics::LogServerQueryMetric(ServerQueryMetric metric) const {
DCHECK_LT(metric, NUM_SERVER_QUERY_METRICS);
-
UMA_HISTOGRAM_ENUMERATION("Autofill.ServerQueryResponse", metric,
NUM_SERVER_QUERY_METRICS);
}
void AutofillMetrics::LogUserHappinessMetric(UserHappinessMetric metric) const {
DCHECK_LT(metric, NUM_USER_HAPPINESS_METRICS);
-
UMA_HISTOGRAM_ENUMERATION("Autofill.UserHappiness", metric,
NUM_USER_HAPPINESS_METRICS);
}
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_metrics_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698