OLD | NEW |
---|---|
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 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
292 SafeBrowsingService* SafeBrowsingService::CreateSafeBrowsingService() { | 292 SafeBrowsingService* SafeBrowsingService::CreateSafeBrowsingService() { |
293 if (!factory_) | 293 if (!factory_) |
294 factory_ = g_safe_browsing_service_factory_impl.Pointer(); | 294 factory_ = g_safe_browsing_service_factory_impl.Pointer(); |
295 return factory_->CreateSafeBrowsingService(); | 295 return factory_->CreateSafeBrowsingService(); |
296 } | 296 } |
297 | 297 |
298 SafeBrowsingService::SafeBrowsingService() | 298 SafeBrowsingService::SafeBrowsingService() |
299 : services_delegate_(ServicesDelegate::Create(this)), | 299 : services_delegate_(ServicesDelegate::Create(this)), |
300 enabled_(false), | 300 enabled_(false), |
301 enabled_by_prefs_(false), | 301 enabled_by_prefs_(false), |
302 maybe_enabled_extended_reporting_by_prefs_(false), | |
303 maybe_enabled_scout_reporting_by_prefs_(false), | |
302 enabled_v4_only_(safe_browsing::V4FeatureList::IsV4OnlyEnabled()) {} | 304 enabled_v4_only_(safe_browsing::V4FeatureList::IsV4OnlyEnabled()) {} |
303 | 305 |
304 SafeBrowsingService::~SafeBrowsingService() { | 306 SafeBrowsingService::~SafeBrowsingService() { |
305 // We should have already been shut down. If we're still enabled, then the | 307 // We should have already been shut down. If we're still enabled, then the |
306 // database isn't going to be closed properly, which could lead to corruption. | 308 // database isn't going to be closed properly, which could lead to corruption. |
307 DCHECK(!enabled_); | 309 DCHECK(!enabled_); |
308 } | 310 } |
309 | 311 |
310 void SafeBrowsingService::Initialize() { | 312 void SafeBrowsingService::Initialize() { |
311 // Ensure FileTypePolicies's Singleton is instantiated during startup. | 313 // Ensure FileTypePolicies's Singleton is instantiated during startup. |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
664 default: | 666 default: |
665 NOTREACHED(); | 667 NOTREACHED(); |
666 } | 668 } |
667 } | 669 } |
668 | 670 |
669 void SafeBrowsingService::AddPrefService(PrefService* pref_service) { | 671 void SafeBrowsingService::AddPrefService(PrefService* pref_service) { |
670 DCHECK(prefs_map_.find(pref_service) == prefs_map_.end()); | 672 DCHECK(prefs_map_.find(pref_service) == prefs_map_.end()); |
671 std::unique_ptr<PrefChangeRegistrar> registrar = | 673 std::unique_ptr<PrefChangeRegistrar> registrar = |
672 base::MakeUnique<PrefChangeRegistrar>(); | 674 base::MakeUnique<PrefChangeRegistrar>(); |
673 registrar->Init(pref_service); | 675 registrar->Init(pref_service); |
674 registrar->Add(prefs::kSafeBrowsingEnabled, | 676 registrar->Add( |
675 base::Bind(&SafeBrowsingService::RefreshState, | 677 prefs::kSafeBrowsingEnabled, |
676 base::Unretained(this))); | 678 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); |
677 // ClientSideDetectionService will need to be refresh the models | 679 // ClientSideDetectionService will need to be refresh the models |
678 // renderers have if extended-reporting changes. | 680 // renderers have if extended-reporting changes. |
679 registrar->Add( | 681 registrar->Add( |
680 prefs::kSafeBrowsingExtendedReportingEnabled, | 682 prefs::kSafeBrowsingExtendedReportingEnabled, |
681 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); | 683 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); |
682 registrar->Add( | 684 registrar->Add( |
683 prefs::kSafeBrowsingScoutReportingEnabled, | 685 prefs::kSafeBrowsingScoutReportingEnabled, |
684 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); | 686 base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); |
685 prefs_map_[pref_service] = std::move(registrar); | 687 prefs_map_[pref_service] = std::move(registrar); |
686 RefreshState(); | 688 RefreshState(); |
(...skipping 26 matching lines...) Expand all Loading... | |
713 | 715 |
714 std::unique_ptr<SafeBrowsingService::ShutdownSubscription> | 716 std::unique_ptr<SafeBrowsingService::ShutdownSubscription> |
715 SafeBrowsingService::RegisterShutdownCallback( | 717 SafeBrowsingService::RegisterShutdownCallback( |
716 const base::Callback<void(void)>& callback) { | 718 const base::Callback<void(void)>& callback) { |
717 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 719 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
718 return shutdown_callback_list_.Add(callback); | 720 return shutdown_callback_list_.Add(callback); |
719 } | 721 } |
720 | 722 |
721 void SafeBrowsingService::RefreshState() { | 723 void SafeBrowsingService::RefreshState() { |
722 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 724 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
725 | |
Jialiu Lin
2017/01/25 02:03:29
nit: extra empty line.
vakh (use Gerrit instead)
2017/01/25 02:13:41
Was intentional but removed now.
| |
723 // Check if any profile requires the service to be active. | 726 // Check if any profile requires the service to be active. |
724 bool enable = false; | 727 enabled_by_prefs_ = false; |
728 maybe_enabled_extended_reporting_by_prefs_ = false; | |
729 maybe_enabled_scout_reporting_by_prefs_ = false; | |
725 for (const auto& pref : prefs_map_) { | 730 for (const auto& pref : prefs_map_) { |
726 if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) { | 731 if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) { |
727 enable = true; | 732 enabled_by_prefs_ = true; |
728 break; | 733 if (pref.first->GetBoolean( |
734 prefs::kSafeBrowsingExtendedReportingEnabled)) { | |
735 maybe_enabled_extended_reporting_by_prefs_ = true; | |
736 } | |
737 if (pref.first->GetBoolean(prefs::kSafeBrowsingScoutReportingEnabled)) { | |
738 maybe_enabled_scout_reporting_by_prefs_ = true; | |
739 } | |
729 } | 740 } |
730 } | 741 } |
731 | 742 |
732 enabled_by_prefs_ = enable; | 743 if (enabled_by_prefs_) |
733 | |
734 if (enable) | |
735 Start(); | 744 Start(); |
736 else | 745 else |
737 Stop(false); | 746 Stop(false); |
738 | 747 |
739 state_callback_list_.Notify(); | 748 state_callback_list_.Notify(); |
740 | 749 |
741 services_delegate_->RefreshState(enable); | 750 services_delegate_->RefreshState(enabled_by_prefs_); |
742 } | 751 } |
743 | 752 |
744 void SafeBrowsingService::SendSerializedDownloadReport( | 753 void SafeBrowsingService::SendSerializedDownloadReport( |
745 const std::string& report) { | 754 const std::string& report) { |
746 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 755 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
747 BrowserThread::PostTask( | 756 BrowserThread::PostTask( |
748 BrowserThread::IO, FROM_HERE, | 757 BrowserThread::IO, FROM_HERE, |
749 base::Bind(&SafeBrowsingService::OnSendSerializedDownloadReport, this, | 758 base::Bind(&SafeBrowsingService::OnSendSerializedDownloadReport, this, |
750 report)); | 759 report)); |
751 } | 760 } |
752 | 761 |
753 void SafeBrowsingService::OnSendSerializedDownloadReport( | 762 void SafeBrowsingService::OnSendSerializedDownloadReport( |
754 const std::string& report) { | 763 const std::string& report) { |
755 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 764 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
756 if (ping_manager()) | 765 if (ping_manager()) |
757 ping_manager()->ReportThreatDetails(report); | 766 ping_manager()->ReportThreatDetails(report); |
758 } | 767 } |
759 | 768 |
760 void SafeBrowsingService::ProcessResourceRequest( | 769 void SafeBrowsingService::ProcessResourceRequest( |
761 const ResourceRequestInfo& request) { | 770 const ResourceRequestInfo& request) { |
762 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 771 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
763 services_delegate_->ProcessResourceRequest(&request); | 772 services_delegate_->ProcessResourceRequest(&request); |
764 } | 773 } |
765 | 774 |
766 } // namespace safe_browsing | 775 } // namespace safe_browsing |
OLD | NEW |