summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 21:41:30 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 21:41:30 +0000
commit75e20841bd18a6053aa41b754ddfcaa1445435d8 (patch)
tree3619e07cc11b9bc64a1f512a9bfa36245aa0c680
parent7ab9307a4226b1a76933721c4e62e605c2117b7b (diff)
downloadchromium_src-75e20841bd18a6053aa41b754ddfcaa1445435d8.zip
chromium_src-75e20841bd18a6053aa41b754ddfcaa1445435d8.tar.gz
chromium_src-75e20841bd18a6053aa41b754ddfcaa1445435d8.tar.bz2
Add server experiment variants to Autofill heuristic type quality metric.
Useful as a control for the other type quality metrics. BUG=none TEST=unit_tests --gtest_filter=AutofillMetrics* Review URL: http://codereview.chromium.org/6825066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81312 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/autofill/autofill_metrics.cc11
-rw-r--r--chrome/browser/autofill/autofill_metrics.h3
-rw-r--r--chrome/browser/autofill/autofill_metrics_unittest.cc23
-rw-r--r--chrome/browser/autofill/form_structure.cc14
4 files changed, 30 insertions, 21 deletions
diff --git a/chrome/browser/autofill/autofill_metrics.cc b/chrome/browser/autofill/autofill_metrics.cc
index b365840..922fdc9 100644
--- a/chrome/browser/autofill/autofill_metrics.cc
+++ b/chrome/browser/autofill/autofill_metrics.cc
@@ -40,11 +40,16 @@ void AutofillMetrics::Log(CreditCardInfoBarMetric metric) const {
NUM_CREDIT_CARD_INFO_BAR_METRICS);
}
-void AutofillMetrics::Log(HeuristicTypeQualityMetric metric) const {
+void AutofillMetrics::Log(HeuristicTypeQualityMetric metric,
+ const std::string& experiment_id) const {
DCHECK(metric < NUM_HEURISTIC_TYPE_QUALITY_METRICS);
- UMA_HISTOGRAM_ENUMERATION("Autofill.Quality.HeuristicType", metric,
- NUM_HEURISTIC_TYPE_QUALITY_METRICS);
+ std::string histogram_name = "Autofill.Quality.HeuristicType";
+ if (!experiment_id.empty())
+ histogram_name += "_" + experiment_id;
+
+ LogUMAHistogramEnumeration(histogram_name, metric,
+ NUM_HEURISTIC_TYPE_QUALITY_METRICS);
}
void AutofillMetrics::Log(PredictedTypeQualityMetric metric,
diff --git a/chrome/browser/autofill/autofill_metrics.h b/chrome/browser/autofill/autofill_metrics.h
index 1f4bad3..1ecab3c 100644
--- a/chrome/browser/autofill/autofill_metrics.h
+++ b/chrome/browser/autofill/autofill_metrics.h
@@ -93,7 +93,8 @@ class AutofillMetrics {
virtual ~AutofillMetrics();
virtual void Log(CreditCardInfoBarMetric metric) const;
- virtual void Log(HeuristicTypeQualityMetric metric) const;
+ virtual void Log(HeuristicTypeQualityMetric metric,
+ const std::string& experiment_id) const;
virtual void Log(PredictedTypeQualityMetric metric,
const std::string& experiment_id) const;
virtual void Log(QualityMetric metric,
diff --git a/chrome/browser/autofill/autofill_metrics_unittest.cc b/chrome/browser/autofill/autofill_metrics_unittest.cc
index a68f94d..4d3f54e 100644
--- a/chrome/browser/autofill/autofill_metrics_unittest.cc
+++ b/chrome/browser/autofill/autofill_metrics_unittest.cc
@@ -30,7 +30,8 @@ class MockAutofillMetrics : public AutofillMetrics {
public:
MockAutofillMetrics() {}
MOCK_CONST_METHOD1(Log, void(CreditCardInfoBarMetric metric));
- MOCK_CONST_METHOD1(Log, void(HeuristicTypeQualityMetric metric));
+ MOCK_CONST_METHOD2(Log, void(HeuristicTypeQualityMetric metric,
+ const std::string& experiment_id));
MOCK_CONST_METHOD2(Log, void(QualityMetric metric,
const std::string& experiment_id));
MOCK_CONST_METHOD1(Log, void(ServerQueryMetric metric));
@@ -249,7 +250,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MISMATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -260,7 +261,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -283,7 +284,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN));
+ Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_UNKNOWN, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -463,7 +464,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN));
+ Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_UNKNOWN, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -480,7 +481,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MISMATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -497,7 +498,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MISMATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -517,7 +518,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MATCH, std::string()));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -624,7 +625,7 @@ TEST_F(AutofillMetricsTest, QualityMetricsWithExperimentId) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MATCH, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MISMATCH, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -635,7 +636,7 @@ TEST_F(AutofillMetricsTest, QualityMetricsWithExperimentId) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH));
+ Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_MATCH, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
@@ -658,7 +659,7 @@ TEST_F(AutofillMetricsTest, QualityMetricsWithExperimentId) {
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::FIELD_SUBMITTED, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
- Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN));
+ Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
Log(AutofillMetrics::SERVER_TYPE_UNKNOWN, experiment_id));
EXPECT_CALL(*autofill_manager_->metric_logger(),
diff --git a/chrome/browser/autofill/form_structure.cc b/chrome/browser/autofill/form_structure.cc
index bfe0d5d..99e131b 100644
--- a/chrome/browser/autofill/form_structure.cc
+++ b/chrome/browser/autofill/form_structure.cc
@@ -354,12 +354,14 @@ void FormStructure::LogQualityMetrics(
// Log heuristic, server, and overall type quality metrics, independently of
// whether the field was autofilled.
- if (heuristic_type == UNKNOWN_TYPE)
- metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN);
- else if (field_types.count(heuristic_type))
- metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_MATCH);
- else
- metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH);
+ if (heuristic_type == UNKNOWN_TYPE) {
+ metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_UNKNOWN, experiment_id);
+ } else if (field_types.count(heuristic_type)) {
+ metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_MATCH, experiment_id);
+ } else {
+ metric_logger.Log(AutofillMetrics::HEURISTIC_TYPE_MISMATCH,
+ experiment_id);
+ }
if (server_type == NO_SERVER_DATA)
metric_logger.Log(AutofillMetrics::SERVER_TYPE_UNKNOWN, experiment_id);