OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/important_sites_util.h" | 5 #include "chrome/browser/engagement/important_sites_util.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <set> | 10 #include <set> |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 static const int kTimesIgnoredForBlacklist = 3; | 49 static const int kTimesIgnoredForBlacklist = 3; |
50 | 50 |
51 // These are the maximum # of bookmarks we can use as signals. If the user has | 51 // These are the maximum # of bookmarks we can use as signals. If the user has |
52 // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all | 52 // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all |
53 // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. | 53 // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. |
54 static const int kMaxBookmarks = 5; | 54 static const int kMaxBookmarks = 5; |
55 | 55 |
56 // We need this to be a macro, as the histogram macros cache their pointers | 56 // We need this to be a macro, as the histogram macros cache their pointers |
57 // after the first call, so when we change the uma name we check fail if we're | 57 // after the first call, so when we change the uma name we check fail if we're |
58 // just a method. | 58 // just a method. |
59 #define RECORD_UMA_FOR_IMPORTANT_REASON(uma_name, uma_count_name, \ | 59 #define RECORD_UMA_FOR_IMPORTANT_REASON(uma_name, uma_count_name, \ |
60 reason_bitfield) \ | 60 reason_bitfield) \ |
61 do { \ | 61 do { \ |
62 int count = 0; \ | 62 int count = 0; \ |
63 int32_t bitfield = (reason_bitfield); \ | 63 int32_t bitfield = (reason_bitfield); \ |
64 for (int i = 0; i < ImportantReason::REASON_BOUNDARY; i++) { \ | 64 for (int i = 0; i < ImportantReason::REASON_BOUNDARY; i++) { \ |
65 if ((bitfield >> i) & 1) { \ | 65 if ((bitfield >> i) & 1) { \ |
66 count++; \ | 66 count++; \ |
67 UMA_HISTOGRAM_ENUMERATION((uma_name), i, \ | 67 UMA_HISTOGRAM_ENUMERATION((uma_name), static_cast<ImportantReason>(i), \ |
68 ImportantReason::REASON_BOUNDARY); \ | 68 ImportantReason::REASON_BOUNDARY); \ |
69 } \ | 69 } \ |
70 } \ | 70 } \ |
71 UMA_HISTOGRAM_ENUMERATION((uma_count_name), count, \ | 71 UMA_HISTOGRAM_EXACT_LINEAR( \ |
72 ImportantReason::REASON_BOUNDARY); \ | 72 (uma_count_name), count, \ |
| 73 static_cast<int>(ImportantReason::REASON_BOUNDARY)); \ |
73 } while (0) | 74 } while (0) |
74 | 75 |
75 // Do not change the values here, as they are used for UMA histograms and | 76 // Do not change the values here, as they are used for UMA histograms and |
76 // testing in important_sites_util_unittest. | 77 // testing in important_sites_util_unittest. |
77 enum CrossedReason { | 78 enum CrossedReason { |
78 CROSSED_DURABLE = 0, | 79 CROSSED_DURABLE = 0, |
79 CROSSED_NOTIFICATIONS = 1, | 80 CROSSED_NOTIFICATIONS = 1, |
80 CROSSED_ENGAGEMENT = 2, | 81 CROSSED_ENGAGEMENT = 2, |
81 CROSSED_NOTIFICATIONS_AND_ENGAGEMENT = 3, | 82 CROSSED_NOTIFICATIONS_AND_ENGAGEMENT = 3, |
82 CROSSED_DURABLE_AND_ENGAGEMENT = 4, | 83 CROSSED_DURABLE_AND_ENGAGEMENT = 4, |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 const GURL& origin) { | 487 const GURL& origin) { |
487 SiteEngagementScore::SetParamValuesForTesting(); | 488 SiteEngagementScore::SetParamValuesForTesting(); |
488 // First get data from site engagement. | 489 // First get data from site engagement. |
489 SiteEngagementService* site_engagement_service = | 490 SiteEngagementService* site_engagement_service = |
490 SiteEngagementService::Get(profile); | 491 SiteEngagementService::Get(profile); |
491 site_engagement_service->ResetBaseScoreForURL( | 492 site_engagement_service->ResetBaseScoreForURL( |
492 origin, SiteEngagementScore::GetMediumEngagementBoundary()); | 493 origin, SiteEngagementScore::GetMediumEngagementBoundary()); |
493 DCHECK(site_engagement_service->IsEngagementAtLeast( | 494 DCHECK(site_engagement_service->IsEngagementAtLeast( |
494 origin, blink::mojom::EngagementLevel::MEDIUM)); | 495 origin, blink::mojom::EngagementLevel::MEDIUM)); |
495 } | 496 } |
OLD | NEW |