diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 21:41:30 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 21:41:30 +0000 |
commit | 75e20841bd18a6053aa41b754ddfcaa1445435d8 (patch) | |
tree | 3619e07cc11b9bc64a1f512a9bfa36245aa0c680 | |
parent | 7ab9307a4226b1a76933721c4e62e605c2117b7b (diff) | |
download | chromium_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.cc | 11 | ||||
-rw-r--r-- | chrome/browser/autofill/autofill_metrics.h | 3 | ||||
-rw-r--r-- | chrome/browser/autofill/autofill_metrics_unittest.cc | 23 | ||||
-rw-r--r-- | chrome/browser/autofill/form_structure.cc | 14 |
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); |