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

Side by Side Diff: components/ntp_snippets/content_suggestions_metrics.cc

Issue 2755113002: Create ReadingListSuggestionsProvider (Closed)
Patch Set: Fix strings Created 3 years, 9 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 "components/ntp_snippets/content_suggestions_metrics.h" 5 #include "components/ntp_snippets/content_suggestions_metrics.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <string> 8 #include <string>
9 #include <type_traits> 9 #include <type_traits>
10 10
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // reorder elements, only add new ones at the end (before COUNT), and keep in 69 // reorder elements, only add new ones at the end (before COUNT), and keep in
70 // sync with ContentSuggestionsCategory in histograms.xml. 70 // sync with ContentSuggestionsCategory in histograms.xml.
71 enum HistogramCategories { 71 enum HistogramCategories {
72 EXPERIMENTAL, 72 EXPERIMENTAL,
73 RECENT_TABS, 73 RECENT_TABS,
74 DOWNLOADS, 74 DOWNLOADS,
75 BOOKMARKS, 75 BOOKMARKS,
76 PHYSICAL_WEB_PAGES, 76 PHYSICAL_WEB_PAGES,
77 FOREIGN_TABS, 77 FOREIGN_TABS,
78 ARTICLES, 78 ARTICLES,
79 READING_LIST,
79 // Insert new values here! 80 // Insert new values here!
80 COUNT 81 COUNT
81 }; 82 };
82 83
83 HistogramCategories GetHistogramCategory(Category category) { 84 HistogramCategories GetHistogramCategory(Category category) {
84 static_assert( 85 static_assert(
85 std::is_same<decltype(category.id()), typename base::underlying_type< 86 std::is_same<decltype(category.id()), typename base::underlying_type<
86 KnownCategories>::type>::value, 87 KnownCategories>::type>::value,
87 "KnownCategories must have the same underlying type as category.id()"); 88 "KnownCategories must have the same underlying type as category.id()");
88 // Note: Since the underlying type of KnownCategories is int, it's legal to 89 // Note: Since the underlying type of KnownCategories is int, it's legal to
89 // cast from int to KnownCategories, even if the given value isn't listed in 90 // cast from int to KnownCategories, even if the given value isn't listed in
90 // the enumeration. The switch still makes sure that all known values are 91 // the enumeration. The switch still makes sure that all known values are
91 // listed here. 92 // listed here.
92 auto known_category = static_cast<KnownCategories>(category.id()); 93 auto known_category = static_cast<KnownCategories>(category.id());
93 switch (known_category) { 94 switch (known_category) {
94 case KnownCategories::RECENT_TABS: 95 case KnownCategories::RECENT_TABS:
95 return HistogramCategories::RECENT_TABS; 96 return HistogramCategories::RECENT_TABS;
96 case KnownCategories::DOWNLOADS: 97 case KnownCategories::DOWNLOADS:
97 return HistogramCategories::DOWNLOADS; 98 return HistogramCategories::DOWNLOADS;
98 case KnownCategories::BOOKMARKS: 99 case KnownCategories::BOOKMARKS:
99 return HistogramCategories::BOOKMARKS; 100 return HistogramCategories::BOOKMARKS;
100 case KnownCategories::PHYSICAL_WEB_PAGES: 101 case KnownCategories::PHYSICAL_WEB_PAGES:
101 return HistogramCategories::PHYSICAL_WEB_PAGES; 102 return HistogramCategories::PHYSICAL_WEB_PAGES;
102 case KnownCategories::FOREIGN_TABS: 103 case KnownCategories::FOREIGN_TABS:
103 return HistogramCategories::FOREIGN_TABS; 104 return HistogramCategories::FOREIGN_TABS;
104 case KnownCategories::ARTICLES: 105 case KnownCategories::ARTICLES:
105 return HistogramCategories::ARTICLES; 106 return HistogramCategories::ARTICLES;
107 case KnownCategories::READING_LIST:
108 return HistogramCategories::READING_LIST;
106 case KnownCategories::LOCAL_CATEGORIES_COUNT: 109 case KnownCategories::LOCAL_CATEGORIES_COUNT:
107 case KnownCategories::REMOTE_CATEGORIES_OFFSET: 110 case KnownCategories::REMOTE_CATEGORIES_OFFSET:
108 NOTREACHED(); 111 NOTREACHED();
109 return HistogramCategories::COUNT; 112 return HistogramCategories::COUNT;
110 } 113 }
111 // All other (unknown) categories go into a single "Experimental" bucket. 114 // All other (unknown) categories go into a single "Experimental" bucket.
112 return HistogramCategories::EXPERIMENTAL; 115 return HistogramCategories::EXPERIMENTAL;
113 } 116 }
114 117
115 // Each suffix here should correspond to an entry under histogram suffix 118 // Each suffix here should correspond to an entry under histogram suffix
116 // ContentSuggestionCategory in histograms.xml. 119 // ContentSuggestionCategory in histograms.xml.
117 std::string GetCategorySuffix(Category category) { 120 std::string GetCategorySuffix(Category category) {
118 HistogramCategories histogram_category = GetHistogramCategory(category); 121 HistogramCategories histogram_category = GetHistogramCategory(category);
119 switch (histogram_category) { 122 switch (histogram_category) {
120 case HistogramCategories::RECENT_TABS: 123 case HistogramCategories::RECENT_TABS:
121 return "RecentTabs"; 124 return "RecentTabs";
122 case HistogramCategories::DOWNLOADS: 125 case HistogramCategories::DOWNLOADS:
123 return "Downloads"; 126 return "Downloads";
124 case HistogramCategories::BOOKMARKS: 127 case HistogramCategories::BOOKMARKS:
125 return "Bookmarks"; 128 return "Bookmarks";
126 case HistogramCategories::PHYSICAL_WEB_PAGES: 129 case HistogramCategories::PHYSICAL_WEB_PAGES:
127 return "PhysicalWeb"; 130 return "PhysicalWeb";
128 case HistogramCategories::FOREIGN_TABS: 131 case HistogramCategories::FOREIGN_TABS:
129 return "ForeignTabs"; 132 return "ForeignTabs";
130 case HistogramCategories::ARTICLES: 133 case HistogramCategories::ARTICLES:
131 return "Articles"; 134 return "Articles";
132 case HistogramCategories::EXPERIMENTAL: 135 case HistogramCategories::EXPERIMENTAL:
133 return "Experimental"; 136 return "Experimental";
137 case HistogramCategories::READING_LIST:
138 return "ReadingList";
134 case HistogramCategories::COUNT: 139 case HistogramCategories::COUNT:
135 NOTREACHED(); 140 NOTREACHED();
136 break; 141 break;
137 } 142 }
138 return std::string(); 143 return std::string();
139 } 144 }
140 145
141 std::string GetCategoryHistogramName(const char* base_name, Category category) { 146 std::string GetCategoryHistogramName(const char* base_name, Category category) {
142 return base::StringPrintf(kPerCategoryHistogramFormat, base_name, 147 return base::StringPrintf(kPerCategoryHistogramFormat, base_name,
143 GetCategorySuffix(category).c_str()); 148 GetCategorySuffix(category).c_str());
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 } 357 }
353 358
354 void OnCategoryDismissed(Category category) { 359 void OnCategoryDismissed(Category category) {
355 UMA_HISTOGRAM_ENUMERATION(kHistogramCategoryDismissed, 360 UMA_HISTOGRAM_ENUMERATION(kHistogramCategoryDismissed,
356 GetHistogramCategory(category), 361 GetHistogramCategory(category),
357 HistogramCategories::COUNT); 362 HistogramCategories::COUNT);
358 } 363 }
359 364
360 } // namespace metrics 365 } // namespace metrics
361 } // namespace ntp_snippets 366 } // namespace ntp_snippets
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698