| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/engagement/site_engagement_metrics.h" | 5 #include "chrome/browser/engagement/site_engagement_metrics.h" |
| 6 | 6 |
| 7 #include "base/metrics/histogram_macros.h" | 7 #include "base/metrics/histogram_macros.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "chrome/browser/engagement/site_engagement_score.h" |
| 9 | 10 |
| 10 namespace { | 11 namespace { |
| 11 | 12 |
| 12 // These numbers are used as suffixes for the | 13 // These numbers are used as suffixes for the |
| 13 // SiteEngagementService.EngagementScoreBucket_* histogram. If these bases | 14 // SiteEngagementService.EngagementScoreBucket_* histogram. If these bases |
| 14 // change, the EngagementScoreBuckets suffix in histograms.xml should be | 15 // change, the EngagementScoreBuckets suffix in histograms.xml should be |
| 15 // updated. | 16 // updated. |
| 16 const int kEngagementBucketHistogramBuckets[] = {0, 10, 20, 30, 40, 50, | 17 const int kEngagementBucketHistogramBuckets[] = {0, 10, 20, 30, 40, 50, |
| 17 60, 70, 80, 90, 100}; | 18 60, 70, 80, 90, 100}; |
| 18 | 19 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 35 | 36 |
| 36 const char SiteEngagementMetrics::kEngagementScoreHistogram[] = | 37 const char SiteEngagementMetrics::kEngagementScoreHistogram[] = |
| 37 "SiteEngagementService.EngagementScore"; | 38 "SiteEngagementService.EngagementScore"; |
| 38 | 39 |
| 39 const char SiteEngagementMetrics::kEngagementScoreHistogramHTTP[] = | 40 const char SiteEngagementMetrics::kEngagementScoreHistogramHTTP[] = |
| 40 "SiteEngagementService.EngagementScore.HTTP"; | 41 "SiteEngagementService.EngagementScore.HTTP"; |
| 41 | 42 |
| 42 const char SiteEngagementMetrics::kEngagementScoreHistogramHTTPS[] = | 43 const char SiteEngagementMetrics::kEngagementScoreHistogramHTTPS[] = |
| 43 "SiteEngagementService.EngagementScore.HTTPS"; | 44 "SiteEngagementService.EngagementScore.HTTPS"; |
| 44 | 45 |
| 46 const char SiteEngagementMetrics::kEngagementScoreHistogramZero[] = |
| 47 "SiteEngagementService.EngagementScore.Zero"; |
| 48 |
| 45 const char SiteEngagementMetrics::kOriginsWithMaxEngagementHistogram[] = | 49 const char SiteEngagementMetrics::kOriginsWithMaxEngagementHistogram[] = |
| 46 "SiteEngagementService.OriginsWithMaxEngagement"; | 50 "SiteEngagementService.OriginsWithMaxEngagement"; |
| 47 | 51 |
| 48 const char SiteEngagementMetrics::kOriginsWithMaxDailyEngagementHistogram[] = | 52 const char SiteEngagementMetrics::kOriginsWithMaxDailyEngagementHistogram[] = |
| 49 "SiteEngagementService.OriginsWithMaxDailyEngagement"; | 53 "SiteEngagementService.OriginsWithMaxDailyEngagement"; |
| 50 | 54 |
| 51 const char SiteEngagementMetrics::kPercentOriginsWithMaxEngagementHistogram[] = | 55 const char SiteEngagementMetrics::kPercentOriginsWithMaxEngagementHistogram[] = |
| 52 "SiteEngagementService.PercentOriginsWithMaxEngagement"; | 56 "SiteEngagementService.PercentOriginsWithMaxEngagement"; |
| 53 | 57 |
| 54 const char SiteEngagementMetrics::kEngagementTypeHistogram[] = | 58 const char SiteEngagementMetrics::kEngagementTypeHistogram[] = |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 return; | 92 return; |
| 89 | 93 |
| 90 // Total up all HTTP and HTTPS engagement so we can log the percentage of | 94 // Total up all HTTP and HTTPS engagement so we can log the percentage of |
| 91 // engagement to HTTPS origins. | 95 // engagement to HTTPS origins. |
| 92 double total_http_https_engagement = 0; | 96 double total_http_https_engagement = 0; |
| 93 double https_engagement = 0; | 97 double https_engagement = 0; |
| 94 std::map<int, int> score_buckets; | 98 std::map<int, int> score_buckets; |
| 95 for (size_t i = 0; i < arraysize(kEngagementBucketHistogramBuckets); ++i) | 99 for (size_t i = 0; i < arraysize(kEngagementBucketHistogramBuckets); ++i) |
| 96 score_buckets[kEngagementBucketHistogramBuckets[i]] = 0; | 100 score_buckets[kEngagementBucketHistogramBuckets[i]] = 0; |
| 97 | 101 |
| 102 const double threshold_0 = SiteEngagementScore::GetScoreCleanupThreshold(); |
| 98 for (const auto& value : score_map) { | 103 for (const auto& value : score_map) { |
| 99 double score = value.second; | 104 double score = value.second; |
| 100 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogram, score); | 105 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogram, score); |
| 106 UMA_HISTOGRAM_BOOLEAN(kEngagementScoreHistogramZero, score < threshold_0); |
| 101 if (value.first.SchemeIs(url::kHttpsScheme)) { | 107 if (value.first.SchemeIs(url::kHttpsScheme)) { |
| 102 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogramHTTPS, score); | 108 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogramHTTPS, score); |
| 103 https_engagement += score; | 109 https_engagement += score; |
| 104 total_http_https_engagement += score; | 110 total_http_https_engagement += score; |
| 105 } else if (value.first.SchemeIs(url::kHttpScheme)) { | 111 } else if (value.first.SchemeIs(url::kHttpScheme)) { |
| 106 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogramHTTP, score); | 112 UMA_HISTOGRAM_COUNTS_100(kEngagementScoreHistogramHTTP, score); |
| 107 total_http_https_engagement += score; | 113 total_http_https_engagement += score; |
| 108 } | 114 } |
| 109 | 115 |
| 110 auto bucket = score_buckets.lower_bound(score); | 116 auto bucket = score_buckets.lower_bound(score); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 SiteEngagementMetrics::GetEngagementBucketHistogramNames() { | 173 SiteEngagementMetrics::GetEngagementBucketHistogramNames() { |
| 168 std::vector<std::string> histogram_names; | 174 std::vector<std::string> histogram_names; |
| 169 for (size_t i = 0; i < arraysize(kEngagementBucketHistogramBuckets); ++i) { | 175 for (size_t i = 0; i < arraysize(kEngagementBucketHistogramBuckets); ++i) { |
| 170 histogram_names.push_back( | 176 histogram_names.push_back( |
| 171 kEngagementBucketHistogramBase + | 177 kEngagementBucketHistogramBase + |
| 172 base::IntToString(kEngagementBucketHistogramBuckets[i])); | 178 base::IntToString(kEngagementBucketHistogramBuckets[i])); |
| 173 } | 179 } |
| 174 | 180 |
| 175 return histogram_names; | 181 return histogram_names; |
| 176 } | 182 } |
| OLD | NEW |