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

Unified Diff: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc

Issue 1643573002: Add a ModuleLoadAnalyzer which checks modules against a whitelist (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make module_load_analyzer classless, remove static global and use CONTINUE_ON_SHUTDOWN Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
index 5878376b182a80665758be80b75b39912bb9a254..058c1905ccb0bb50dc845d7ebaeac8780ac69dd6 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
@@ -215,11 +215,11 @@ void IncidentReportingService::Receiver::AddIncidentForProcess(
scoped_ptr<Incident> incident) {
if (thread_runner_->BelongsToCurrentThread()) {
AddIncidentOnMainThread(service_, nullptr, std::move(incident));
- } else if (!thread_runner_->PostTask(
- FROM_HERE,
- base::Bind(&IncidentReportingService::Receiver::AddIncidentOnMainThread,
- service_, nullptr, base::Passed(&incident)))) {
- LogIncidentDataType(DISCARDED, *incident);
+ } else {
+ thread_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&IncidentReportingService::Receiver::AddIncidentOnMainThread,
+ service_, nullptr, base::Passed(&incident)));
}
}
@@ -320,6 +320,11 @@ IncidentReportingService::IncidentReportingService(
content::BrowserThread::GetBlockingPool()
->GetTaskRunnerWithShutdownBehavior(
base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
+ extended_reporting_only_delayed_analysis_callbacks_(
+ base::TimeDelta::FromMilliseconds(kDefaultCallbackIntervalMs),
+ content::BrowserThread::GetBlockingPool()
+ ->GetTaskRunnerWithShutdownBehavior(
+ base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
download_metadata_manager_(content::BrowserThread::GetBlockingPool()),
receiver_weak_ptr_factory_(this),
weak_ptr_factory_(this) {
@@ -387,6 +392,26 @@ void IncidentReportingService::RegisterDelayedAnalysisCallback(
delayed_analysis_callbacks_.Start();
}
+void IncidentReportingService::
+ RegisterExtendedReportingOnlyDelayedAnalysisCallback(
+ const DelayedAnalysisCallback& callback) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ // |callback| will be run on the blocking pool. The receiver will bounce back
+ // to the origin thread if needed.
+ extended_reporting_only_delayed_analysis_callbacks_.RegisterCallback(
+ base::Bind(callback, base::Passed(GetIncidentReceiver())));
+
+ // Start running the callbacks if any profiles have opted into Safebrowsing
+ // extended reporting. If none are now, running will commence if/when such a
+ // profile is added.
+ Profile* profile = FindEligibleProfile();
+ if (profile &&
+ profile->GetPrefs()->GetBoolean(
+ prefs::kSafeBrowsingExtendedReportingEnabled))
+ extended_reporting_only_delayed_analysis_callbacks_.Start();
grt (UTC plus 2) 2016/02/11 15:54:59 nit: i think most code in this directory uses brac
proberge 2016/02/11 20:25:21 Done.
+}
+
void IncidentReportingService::AddDownloadManager(
content::DownloadManager* download_manager) {
download_metadata_manager_.AddDownloadManager(download_manager);
@@ -413,6 +438,8 @@ IncidentReportingService::IncidentReportingService(
this,
&IncidentReportingService::OnCollationTimeout),
delayed_analysis_callbacks_(delayed_task_interval, delayed_task_runner),
+ extended_reporting_only_delayed_analysis_callbacks_(delayed_task_interval,
+ delayed_task_runner),
download_metadata_manager_(content::BrowserThread::GetBlockingPool()),
receiver_weak_ptr_factory_(this),
weak_ptr_factory_(this) {
@@ -472,6 +499,12 @@ void IncidentReportingService::OnProfileAdded(Profile* profile) {
// if they're already running.
delayed_analysis_callbacks_.Start();
+ if (profile &&
grt (UTC plus 2) 2016/02/11 15:54:59 |profile| cannot be null here
proberge 2016/02/11 20:25:21 Done.
+ profile->GetPrefs()->GetBoolean(
+ prefs::kSafeBrowsingExtendedReportingEnabled)) {
+ extended_reporting_only_delayed_analysis_callbacks_.Start();
+ }
+
// Start a new report if there are process-wide incidents, or incidents for
// this profile.
if ((GetProfileContext(nullptr) &&

Powered by Google App Engine
This is Rietveld 408576698