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

Side by Side Diff: chrome/browser/engagement/important_sites_util.cc

Issue 2886933003: Use stricter type checking in UMA_HISTOGRAM_ENUMERATION (Closed)
Patch Set: simplify type checking Created 3 years, 5 months 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 unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/diagnostics/diagnostics_test.cc ('k') | chrome/browser/media/android/remote/record_cast_action.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698