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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_service.cc

Issue 2442953002: Remove stl_util's deletion function use from chrome/. (Closed)
Patch Set: fix Created 4 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/safe_browsing/safe_browsing_service.h" 5 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/bind_helpers.h" 12 #include "base/bind_helpers.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/memory/ptr_util.h"
17 #include "base/metrics/histogram_macros.h" 18 #include "base/metrics/histogram_macros.h"
18 #include "base/path_service.h" 19 #include "base/path_service.h"
19 #include "base/stl_util.h"
20 #include "base/strings/string_util.h" 20 #include "base/strings/string_util.h"
21 #include "base/threading/thread.h" 21 #include "base/threading/thread.h"
22 #include "base/threading/thread_restrictions.h" 22 #include "base/threading/thread_restrictions.h"
23 #include "base/threading/worker_pool.h" 23 #include "base/threading/worker_pool.h"
24 #include "base/trace_event/trace_event.h" 24 #include "base/trace_event/trace_event.h"
25 #include "build/build_config.h" 25 #include "build/build_config.h"
26 #include "chrome/browser/browser_process.h" 26 #include "chrome/browser/browser_process.h"
27 #include "chrome/browser/chrome_notification_types.h" 27 #include "chrome/browser/chrome_notification_types.h"
28 #include "chrome/browser/profiles/profile.h" 28 #include "chrome/browser/profiles/profile.h"
29 #include "chrome/browser/profiles/profile_manager.h" 29 #include "chrome/browser/profiles/profile_manager.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 prefs_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CREATED, 326 prefs_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CREATED,
327 content::NotificationService::AllSources()); 327 content::NotificationService::AllSources());
328 prefs_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, 328 prefs_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
329 content::NotificationService::AllSources()); 329 content::NotificationService::AllSources());
330 330
331 // Register all the delayed analysis to the incident reporting service. 331 // Register all the delayed analysis to the incident reporting service.
332 RegisterAllDelayedAnalysis(); 332 RegisterAllDelayedAnalysis();
333 } 333 }
334 334
335 void SafeBrowsingService::ShutDown() { 335 void SafeBrowsingService::ShutDown() {
336 // Deletes the PrefChangeRegistrars, whose dtors also unregister |this| as an 336 // Delete the PrefChangeRegistrars, whose dtors also unregister |this| as an
337 // observer of the preferences. 337 // observer of the preferences.
338 base::STLDeleteValues(&prefs_map_); 338 prefs_map_.clear();
339 339
340 // Remove Profile creation/destruction observers. 340 // Remove Profile creation/destruction observers.
341 prefs_registrar_.RemoveAll(); 341 prefs_registrar_.RemoveAll();
342 342
343 Stop(true); 343 Stop(true);
344 344
345 services_delegate_->ShutdownServices(); 345 services_delegate_->ShutdownServices();
346 346
347 // Since URLRequestContextGetters are refcounted, can't count on clearing 347 // Since URLRequestContextGetters are refcounted, can't count on clearing
348 // |url_request_context_getter_| to delete it, so need to shut it down first, 348 // |url_request_context_getter_| to delete it, so need to shut it down first,
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 RemovePrefService(profile->GetPrefs()); 616 RemovePrefService(profile->GetPrefs());
617 break; 617 break;
618 } 618 }
619 default: 619 default:
620 NOTREACHED(); 620 NOTREACHED();
621 } 621 }
622 } 622 }
623 623
624 void SafeBrowsingService::AddPrefService(PrefService* pref_service) { 624 void SafeBrowsingService::AddPrefService(PrefService* pref_service) {
625 DCHECK(prefs_map_.find(pref_service) == prefs_map_.end()); 625 DCHECK(prefs_map_.find(pref_service) == prefs_map_.end());
626 PrefChangeRegistrar* registrar = new PrefChangeRegistrar(); 626 std::unique_ptr<PrefChangeRegistrar> registrar =
627 base::MakeUnique<PrefChangeRegistrar>();
627 registrar->Init(pref_service); 628 registrar->Init(pref_service);
628 registrar->Add(prefs::kSafeBrowsingEnabled, 629 registrar->Add(prefs::kSafeBrowsingEnabled,
629 base::Bind(&SafeBrowsingService::RefreshState, 630 base::Bind(&SafeBrowsingService::RefreshState,
630 base::Unretained(this))); 631 base::Unretained(this)));
631 // ClientSideDetectionService will need to be refresh the models 632 // ClientSideDetectionService will need to be refresh the models
632 // renderers have if extended-reporting changes. 633 // renderers have if extended-reporting changes.
633 registrar->Add( 634 registrar->Add(
634 GetExtendedReportingPrefName(), 635 GetExtendedReportingPrefName(),
635 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); 636 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this)));
636 prefs_map_[pref_service] = registrar; 637 prefs_map_[pref_service] = std::move(registrar);
637 RefreshState(); 638 RefreshState();
638 639
639 // Record the current pref state. 640 // Record the current pref state.
640 UMA_HISTOGRAM_BOOLEAN("SafeBrowsing.Pref.General", 641 UMA_HISTOGRAM_BOOLEAN("SafeBrowsing.Pref.General",
641 pref_service->GetBoolean(prefs::kSafeBrowsingEnabled)); 642 pref_service->GetBoolean(prefs::kSafeBrowsingEnabled));
642 // Extended Reporting metrics are handled together elsewhere. 643 // Extended Reporting metrics are handled together elsewhere.
643 RecordExtendedReportingMetrics(*pref_service); 644 RecordExtendedReportingMetrics(*pref_service);
644 } 645 }
645 646
646 void SafeBrowsingService::RemovePrefService(PrefService* pref_service) { 647 void SafeBrowsingService::RemovePrefService(PrefService* pref_service) {
647 if (prefs_map_.find(pref_service) != prefs_map_.end()) { 648 if (prefs_map_.find(pref_service) != prefs_map_.end()) {
648 delete prefs_map_[pref_service];
649 prefs_map_.erase(pref_service); 649 prefs_map_.erase(pref_service);
650 RefreshState(); 650 RefreshState();
651 } else { 651 } else {
652 NOTREACHED(); 652 NOTREACHED();
653 } 653 }
654 } 654 }
655 655
656 std::unique_ptr<SafeBrowsingService::StateSubscription> 656 std::unique_ptr<SafeBrowsingService::StateSubscription>
657 SafeBrowsingService::RegisterStateCallback( 657 SafeBrowsingService::RegisterStateCallback(
658 const base::Callback<void(void)>& callback) { 658 const base::Callback<void(void)>& callback) {
659 DCHECK_CURRENTLY_ON(BrowserThread::UI); 659 DCHECK_CURRENTLY_ON(BrowserThread::UI);
660 return state_callback_list_.Add(callback); 660 return state_callback_list_.Add(callback);
661 } 661 }
662 662
663 void SafeBrowsingService::RefreshState() { 663 void SafeBrowsingService::RefreshState() {
664 DCHECK_CURRENTLY_ON(BrowserThread::UI); 664 DCHECK_CURRENTLY_ON(BrowserThread::UI);
665 // Check if any profile requires the service to be active. 665 // Check if any profile requires the service to be active.
666 bool enable = false; 666 bool enable = false;
667 std::map<PrefService*, PrefChangeRegistrar*>::iterator iter; 667 for (auto iter = prefs_map_.begin(); iter != prefs_map_.end(); ++iter) {
Nico 2016/10/24 18:41:02 nit: foreach?
Avi (use Gerrit) 2016/10/24 19:15:37 Done.
668 for (iter = prefs_map_.begin(); iter != prefs_map_.end(); ++iter) {
669 if (iter->first->GetBoolean(prefs::kSafeBrowsingEnabled)) { 668 if (iter->first->GetBoolean(prefs::kSafeBrowsingEnabled)) {
670 enable = true; 669 enable = true;
671 break; 670 break;
672 } 671 }
673 } 672 }
674 673
675 enabled_by_prefs_ = enable; 674 enabled_by_prefs_ = enable;
676 675
677 if (enable) 676 if (enable)
678 Start(); 677 Start();
(...skipping 21 matching lines...) Expand all
700 ping_manager()->ReportThreatDetails(report); 699 ping_manager()->ReportThreatDetails(report);
701 } 700 }
702 701
703 void SafeBrowsingService::ProcessResourceRequest( 702 void SafeBrowsingService::ProcessResourceRequest(
704 const ResourceRequestInfo& request) { 703 const ResourceRequestInfo& request) {
705 DCHECK_CURRENTLY_ON(BrowserThread::UI); 704 DCHECK_CURRENTLY_ON(BrowserThread::UI);
706 services_delegate_->ProcessResourceRequest(&request); 705 services_delegate_->ProcessResourceRequest(&request);
707 } 706 }
708 707
709 } // namespace safe_browsing 708 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698