| 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 ecd5aea00c37a709850e1d041e917bebcd7026b6..a8df1e34edbd1bf4be2637dbf40439f7cc6de0f6 100644
|
| --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
|
| +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
|
| @@ -22,6 +22,7 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "base/threading/sequenced_worker_pool.h"
|
| #include "build/build_config.h"
|
| +#include "chrome/browser/browser_hangs_experiment.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -146,6 +147,15 @@ bool ProfileCanAcceptIncident(Profile* profile, const Incident& incident) {
|
| return false;
|
| }
|
|
|
| +// Returns the shutdown behavior for the task runners of the incident reporting
|
| +// service. Current metrics suggest that CONTINUE_ON_SHUTDOWN will reduce the
|
| +// number of browser hangs on shutdown.
|
| +base::SequencedWorkerPool::WorkerShutdown GetShutdownBehavior() {
|
| + return IsBrowserHangsExperimentEnabled()
|
| + ? base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN
|
| + : base::SequencedWorkerPool::SKIP_ON_SHUTDOWN;
|
| +}
|
| +
|
| } // namespace
|
|
|
| struct IncidentReportingService::ProfileContext {
|
| @@ -338,8 +348,7 @@ IncidentReportingService::IncidentReportingService(
|
| collect_environment_data_fn_(&CollectEnvironmentData),
|
| environment_collection_task_runner_(
|
| content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
|
| + ->GetTaskRunnerWithShutdownBehavior(GetShutdownBehavior())),
|
| environment_collection_pending_(),
|
| collation_timeout_pending_(),
|
| collation_timer_(FROM_HERE,
|
| @@ -349,13 +358,11 @@ IncidentReportingService::IncidentReportingService(
|
| delayed_analysis_callbacks_(
|
| base::TimeDelta::FromMilliseconds(kDefaultCallbackIntervalMs),
|
| content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
|
| + ->GetTaskRunnerWithShutdownBehavior(GetShutdownBehavior())),
|
| extended_reporting_only_delayed_analysis_callbacks_(
|
| base::TimeDelta::FromMilliseconds(kDefaultCallbackIntervalMs),
|
| content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
|
| + ->GetTaskRunnerWithShutdownBehavior(GetShutdownBehavior())),
|
| download_metadata_manager_(content::BrowserThread::GetBlockingPool()),
|
| receiver_weak_ptr_factory_(this),
|
| weak_ptr_factory_(this) {
|
| @@ -463,8 +470,7 @@ IncidentReportingService::IncidentReportingService(
|
| collect_environment_data_fn_(&CollectEnvironmentData),
|
| environment_collection_task_runner_(
|
| content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)),
|
| + ->GetTaskRunnerWithShutdownBehavior(GetShutdownBehavior())),
|
| environment_collection_pending_(),
|
| collation_timeout_pending_(),
|
| collation_timer_(FROM_HERE,
|
| @@ -497,8 +503,7 @@ void IncidentReportingService::SetCollectEnvironmentHook(
|
| collect_environment_data_fn_ = &CollectEnvironmentData;
|
| environment_collection_task_runner_ =
|
| content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
|
| + ->GetTaskRunnerWithShutdownBehavior(GetShutdownBehavior());
|
| }
|
| }
|
|
|
|
|