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

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

Issue 2829163004: Remove uses of base::hash_map from //chrome (Closed)
Patch Set: Downloads back 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 return CROSSED_DURABLE; 130 return CROSSED_DURABLE;
131 else if (engagement) 131 else if (engagement)
132 return CROSSED_ENGAGEMENT; 132 return CROSSED_ENGAGEMENT;
133 return CROSSED_REASON_UNKNOWN; 133 return CROSSED_REASON_UNKNOWN;
134 } 134 }
135 135
136 void MaybePopulateImportantInfoForReason( 136 void MaybePopulateImportantInfoForReason(
137 const GURL& origin, 137 const GURL& origin,
138 std::set<GURL>* visited_origins, 138 std::set<GURL>* visited_origins,
139 ImportantReason reason, 139 ImportantReason reason,
140 base::hash_map<std::string, ImportantDomainInfo>* output) { 140 std::map<std::string, ImportantDomainInfo>* output) {
141 if (!origin.is_valid() || !visited_origins->insert(origin).second) 141 if (!origin.is_valid() || !visited_origins->insert(origin).second)
142 return; 142 return;
143 std::string registerable_domain = 143 std::string registerable_domain =
144 ImportantSitesUtil::GetRegisterableDomainOrIP(origin); 144 ImportantSitesUtil::GetRegisterableDomainOrIP(origin);
145 ImportantDomainInfo& info = (*output)[registerable_domain]; 145 ImportantDomainInfo& info = (*output)[registerable_domain];
146 info.reason_bitfield |= 1 << reason; 146 info.reason_bitfield |= 1 << reason;
147 if (info.example_origin.is_empty()) { 147 if (info.example_origin.is_empty()) {
148 info.registerable_domain = registerable_domain; 148 info.registerable_domain = registerable_domain;
149 info.example_origin = origin; 149 info.example_origin = origin;
150 } 150 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 if (ShouldSuppressItem(dict.get())) 220 if (ShouldSuppressItem(dict.get()))
221 ignoring_domains.insert(origin.host()); 221 ignoring_domains.insert(origin.host());
222 } 222 }
223 return ignoring_domains; 223 return ignoring_domains;
224 } 224 }
225 225
226 void PopulateInfoMapWithSiteEngagement( 226 void PopulateInfoMapWithSiteEngagement(
227 Profile* profile, 227 Profile* profile,
228 blink::mojom::EngagementLevel minimum_engagement, 228 blink::mojom::EngagementLevel minimum_engagement,
229 std::map<GURL, double>* engagement_map, 229 std::map<GURL, double>* engagement_map,
230 base::hash_map<std::string, ImportantDomainInfo>* output) { 230 std::map<std::string, ImportantDomainInfo>* output) {
231 SiteEngagementService* service = SiteEngagementService::Get(profile); 231 SiteEngagementService* service = SiteEngagementService::Get(profile);
232 *engagement_map = service->GetScoreMap(); 232 *engagement_map = service->GetScoreMap();
233 // We can have multiple origins for a single domain, so we record the one 233 // We can have multiple origins for a single domain, so we record the one
234 // with the highest engagement score. 234 // with the highest engagement score.
235 for (const auto& url_engagement_pair : *engagement_map) { 235 for (const auto& url_engagement_pair : *engagement_map) {
236 if (!service->IsEngagementAtLeast(url_engagement_pair.first, 236 if (!service->IsEngagementAtLeast(url_engagement_pair.first,
237 minimum_engagement)) { 237 minimum_engagement)) {
238 continue; 238 continue;
239 } 239 }
240 std::string registerable_domain = 240 std::string registerable_domain =
241 ImportantSitesUtil::GetRegisterableDomainOrIP( 241 ImportantSitesUtil::GetRegisterableDomainOrIP(
242 url_engagement_pair.first); 242 url_engagement_pair.first);
243 ImportantDomainInfo& info = (*output)[registerable_domain]; 243 ImportantDomainInfo& info = (*output)[registerable_domain];
244 if (url_engagement_pair.second > info.engagement_score) { 244 if (url_engagement_pair.second > info.engagement_score) {
245 info.registerable_domain = registerable_domain; 245 info.registerable_domain = registerable_domain;
246 info.engagement_score = url_engagement_pair.second; 246 info.engagement_score = url_engagement_pair.second;
247 info.example_origin = url_engagement_pair.first; 247 info.example_origin = url_engagement_pair.first;
248 info.reason_bitfield |= 1 << ImportantReason::ENGAGEMENT; 248 info.reason_bitfield |= 1 << ImportantReason::ENGAGEMENT;
249 } 249 }
250 } 250 }
251 } 251 }
252 252
253 void PopulateInfoMapWithContentTypeAllowed( 253 void PopulateInfoMapWithContentTypeAllowed(
254 Profile* profile, 254 Profile* profile,
255 ContentSettingsType content_type, 255 ContentSettingsType content_type,
256 ImportantReason reason, 256 ImportantReason reason,
257 base::hash_map<std::string, ImportantDomainInfo>* output) { 257 std::map<std::string, ImportantDomainInfo>* output) {
258 // Grab our content settings list. 258 // Grab our content settings list.
259 ContentSettingsForOneType content_settings_list; 259 ContentSettingsForOneType content_settings_list;
260 HostContentSettingsMapFactory::GetForProfile(profile)->GetSettingsForOneType( 260 HostContentSettingsMapFactory::GetForProfile(profile)->GetSettingsForOneType(
261 content_type, content_settings::ResourceIdentifier(), 261 content_type, content_settings::ResourceIdentifier(),
262 &content_settings_list); 262 &content_settings_list);
263 // Extract a set of urls, using the primary pattern. We don't handle 263 // Extract a set of urls, using the primary pattern. We don't handle
264 // wildcard patterns. 264 // wildcard patterns.
265 std::set<GURL> content_origins; 265 std::set<GURL> content_origins;
266 for (const ContentSettingPatternSource& site : content_settings_list) { 266 for (const ContentSettingPatternSource& site : content_settings_list) {
267 if (site.setting != CONTENT_SETTING_ALLOW) 267 if (site.setting != CONTENT_SETTING_ALLOW)
268 continue; 268 continue;
269 MaybePopulateImportantInfoForReason(GURL(site.primary_pattern.ToString()), 269 MaybePopulateImportantInfoForReason(GURL(site.primary_pattern.ToString()),
270 &content_origins, reason, output); 270 &content_origins, reason, output);
271 } 271 }
272 } 272 }
273 273
274 void PopulateInfoMapWithBookmarks( 274 void PopulateInfoMapWithBookmarks(
275 Profile* profile, 275 Profile* profile,
276 const std::map<GURL, double>& engagement_map, 276 const std::map<GURL, double>& engagement_map,
277 base::hash_map<std::string, ImportantDomainInfo>* output) { 277 std::map<std::string, ImportantDomainInfo>* output) {
278 SiteEngagementService* service = SiteEngagementService::Get(profile); 278 SiteEngagementService* service = SiteEngagementService::Get(profile);
279 BookmarkModel* model = 279 BookmarkModel* model =
280 BookmarkModelFactory::GetForBrowserContextIfExists(profile); 280 BookmarkModelFactory::GetForBrowserContextIfExists(profile);
281 if (!model) 281 if (!model)
282 return; 282 return;
283 std::vector<BookmarkModel::URLAndTitle> untrimmed_bookmarks; 283 std::vector<BookmarkModel::URLAndTitle> untrimmed_bookmarks;
284 model->GetBookmarks(&untrimmed_bookmarks); 284 model->GetBookmarks(&untrimmed_bookmarks);
285 285
286 // Process the bookmarks and optionally trim them if we have too many. 286 // Process the bookmarks and optionally trim them if we have too many.
287 std::vector<BookmarkModel::URLAndTitle> result_bookmarks; 287 std::vector<BookmarkModel::URLAndTitle> result_bookmarks;
(...skipping 26 matching lines...) Expand all
314 314
315 std::set<GURL> content_origins; 315 std::set<GURL> content_origins;
316 for (const BookmarkModel::URLAndTitle& bookmark : result_bookmarks) { 316 for (const BookmarkModel::URLAndTitle& bookmark : result_bookmarks) {
317 MaybePopulateImportantInfoForReason(bookmark.url, &content_origins, 317 MaybePopulateImportantInfoForReason(bookmark.url, &content_origins,
318 ImportantReason::BOOKMARKS, output); 318 ImportantReason::BOOKMARKS, output);
319 } 319 }
320 } 320 }
321 321
322 void PopulateInfoMapWithHomeScreen( 322 void PopulateInfoMapWithHomeScreen(
323 Profile* profile, 323 Profile* profile,
324 base::hash_map<std::string, ImportantDomainInfo>* output) { 324 std::map<std::string, ImportantDomainInfo>* output) {
325 ContentSettingsForOneType content_settings_list; 325 ContentSettingsForOneType content_settings_list;
326 HostContentSettingsMapFactory::GetForProfile(profile)->GetSettingsForOneType( 326 HostContentSettingsMapFactory::GetForProfile(profile)->GetSettingsForOneType(
327 CONTENT_SETTINGS_TYPE_APP_BANNER, content_settings::ResourceIdentifier(), 327 CONTENT_SETTINGS_TYPE_APP_BANNER, content_settings::ResourceIdentifier(),
328 &content_settings_list); 328 &content_settings_list);
329 // Extract a set of urls, using the primary pattern. We don't handle 329 // Extract a set of urls, using the primary pattern. We don't handle
330 // wildcard patterns. 330 // wildcard patterns.
331 std::set<GURL> content_origins; 331 std::set<GURL> content_origins;
332 base::Time now = base::Time::Now(); 332 base::Time now = base::Time::Now();
333 for (const ContentSettingPatternSource& site : content_settings_list) { 333 for (const ContentSettingPatternSource& site : content_settings_list) {
334 GURL origin(site.primary_pattern.ToString()); 334 GURL origin(site.primary_pattern.ToString());
(...skipping 28 matching lines...) Expand all
363 } 363 }
364 364
365 void ImportantSitesUtil::RegisterProfilePrefs( 365 void ImportantSitesUtil::RegisterProfilePrefs(
366 user_prefs::PrefRegistrySyncable* registry) { 366 user_prefs::PrefRegistrySyncable* registry) {
367 registry->RegisterDictionaryPref(prefs::kImportantSitesDialogHistory); 367 registry->RegisterDictionaryPref(prefs::kImportantSitesDialogHistory);
368 } 368 }
369 369
370 std::vector<ImportantDomainInfo> 370 std::vector<ImportantDomainInfo>
371 ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile, 371 ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
372 size_t max_results) { 372 size_t max_results) {
373 base::hash_map<std::string, ImportantDomainInfo> important_info; 373 std::map<std::string, ImportantDomainInfo> important_info;
374 std::map<GURL, double> engagement_map; 374 std::map<GURL, double> engagement_map;
375 375
376 PopulateInfoMapWithSiteEngagement( 376 PopulateInfoMapWithSiteEngagement(
377 profile, blink::mojom::EngagementLevel::MEDIUM, &engagement_map, 377 profile, blink::mojom::EngagementLevel::MEDIUM, &engagement_map,
378 &important_info); 378 &important_info);
379 379
380 PopulateInfoMapWithContentTypeAllowed( 380 PopulateInfoMapWithContentTypeAllowed(
381 profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 381 profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
382 ImportantReason::NOTIFICATIONS, &important_info); 382 ImportantReason::NOTIFICATIONS, &important_info);
383 383
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 const GURL& origin) { 486 const GURL& origin) {
487 SiteEngagementScore::SetParamValuesForTesting(); 487 SiteEngagementScore::SetParamValuesForTesting();
488 // First get data from site engagement. 488 // First get data from site engagement.
489 SiteEngagementService* site_engagement_service = 489 SiteEngagementService* site_engagement_service =
490 SiteEngagementService::Get(profile); 490 SiteEngagementService::Get(profile);
491 site_engagement_service->ResetBaseScoreForURL( 491 site_engagement_service->ResetBaseScoreForURL(
492 origin, SiteEngagementScore::GetMediumEngagementBoundary()); 492 origin, SiteEngagementScore::GetMediumEngagementBoundary());
493 DCHECK(site_engagement_service->IsEngagementAtLeast( 493 DCHECK(site_engagement_service->IsEngagementAtLeast(
494 origin, blink::mojom::EngagementLevel::MEDIUM)); 494 origin, blink::mojom::EngagementLevel::MEDIUM));
495 } 495 }
OLDNEW
« no previous file with comments | « chrome/browser/download/chrome_download_manager_delegate.h ('k') | chrome/browser/extensions/api/downloads/downloads_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698