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

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

Issue 2647323009: Add extended reporting level in the update request (Closed)
Patch Set: rebase Created 3 years, 11 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
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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 27 matching lines...) Expand all
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);
723 // Check if any profile requires the service to be active. 725 // Check if any profile requires the service to be active.
724 bool enable = false; 726 enabled_by_prefs_ = false;
727 maybe_enabled_extended_reporting_by_prefs_ = false;
lpz 2017/01/25 16:24:47 have you considered storing one field with the Ext
vakh (use Gerrit instead) 2017/01/25 22:35:30 Done.
728 maybe_enabled_scout_reporting_by_prefs_ = false;
725 for (const auto& pref : prefs_map_) { 729 for (const auto& pref : prefs_map_) {
726 if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) { 730 if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) {
727 enable = true; 731 enabled_by_prefs_ = true;
728 break; 732 if (pref.first->GetBoolean(
733 prefs::kSafeBrowsingExtendedReportingEnabled)) {
734 maybe_enabled_extended_reporting_by_prefs_ = true;
735 }
736 if (pref.first->GetBoolean(prefs::kSafeBrowsingScoutReportingEnabled)) {
737 maybe_enabled_scout_reporting_by_prefs_ = true;
738 }
729 } 739 }
730 } 740 }
731 741
732 enabled_by_prefs_ = enable; 742 if (enabled_by_prefs_)
733
734 if (enable)
735 Start(); 743 Start();
736 else 744 else
737 Stop(false); 745 Stop(false);
738 746
739 state_callback_list_.Notify(); 747 state_callback_list_.Notify();
740 748
741 services_delegate_->RefreshState(enable); 749 services_delegate_->RefreshState(enabled_by_prefs_);
742 } 750 }
743 751
744 void SafeBrowsingService::SendSerializedDownloadReport( 752 void SafeBrowsingService::SendSerializedDownloadReport(
745 const std::string& report) { 753 const std::string& report) {
746 DCHECK_CURRENTLY_ON(BrowserThread::UI); 754 DCHECK_CURRENTLY_ON(BrowserThread::UI);
747 BrowserThread::PostTask( 755 BrowserThread::PostTask(
748 BrowserThread::IO, FROM_HERE, 756 BrowserThread::IO, FROM_HERE,
749 base::Bind(&SafeBrowsingService::OnSendSerializedDownloadReport, this, 757 base::Bind(&SafeBrowsingService::OnSendSerializedDownloadReport, this,
750 report)); 758 report));
751 } 759 }
752 760
753 void SafeBrowsingService::OnSendSerializedDownloadReport( 761 void SafeBrowsingService::OnSendSerializedDownloadReport(
754 const std::string& report) { 762 const std::string& report) {
755 DCHECK_CURRENTLY_ON(BrowserThread::IO); 763 DCHECK_CURRENTLY_ON(BrowserThread::IO);
756 if (ping_manager()) 764 if (ping_manager())
757 ping_manager()->ReportThreatDetails(report); 765 ping_manager()->ReportThreatDetails(report);
758 } 766 }
759 767
760 void SafeBrowsingService::ProcessResourceRequest( 768 void SafeBrowsingService::ProcessResourceRequest(
761 const ResourceRequestInfo& request) { 769 const ResourceRequestInfo& request) {
762 DCHECK_CURRENTLY_ON(BrowserThread::UI); 770 DCHECK_CURRENTLY_ON(BrowserThread::UI);
763 services_delegate_->ProcessResourceRequest(&request); 771 services_delegate_->ProcessResourceRequest(&request);
764 } 772 }
765 773
766 } // namespace safe_browsing 774 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/safe_browsing_service.h ('k') | chrome/browser/safe_browsing/services_delegate_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698