| Index: chrome/browser/metrics/chrome_metrics_service_client.cc
|
| diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| index d14ba61230f17213dc16157e97c0bcef217a365e..d468b3231d649b39b04409420e0dd59ab8da4d1a 100644
|
| --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| @@ -26,8 +26,9 @@
|
| #include "base/path_service.h"
|
| #include "base/rand_util.h"
|
| #include "base/strings/string16.h"
|
| +#include "base/task_scheduler/post_task.h"
|
| +#include "base/task_scheduler/task_traits.h"
|
| #include "base/threading/platform_thread.h"
|
| -#include "base/threading/sequenced_worker_pool.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/browser_process.h"
|
| @@ -178,7 +179,6 @@ void RegisterOrRemovePreviousRunMetricsFile(
|
| const base::FilePath& dir,
|
| base::StringPiece metrics_name,
|
| metrics::FileMetricsProvider::SourceAssociation association,
|
| - scoped_refptr<base::TaskRunner> task_runner,
|
| metrics::FileMetricsProvider* file_metrics_provider) {
|
| base::FilePath metrics_file;
|
| base::GlobalHistogramAllocator::ConstructFilePaths(
|
| @@ -193,25 +193,20 @@ void RegisterOrRemovePreviousRunMetricsFile(
|
| } else {
|
| // When metrics reporting is not enabled, any existing file should be
|
| // deleted in order to preserve user privacy.
|
| - task_runner->PostTask(FROM_HERE,
|
| - base::BindOnce(base::IgnoreResult(&base::DeleteFile),
|
| - metrics_file, /*recursive=*/false));
|
| + base::PostTaskWithTraits(
|
| + FROM_HERE,
|
| + {base::MayBlock(), base::TaskPriority::BACKGROUND,
|
| + base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
|
| + base::BindOnce(base::IgnoreResult(&base::DeleteFile), metrics_file,
|
| + /*recursive=*/false));
|
| }
|
| }
|
|
|
| std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
| bool metrics_reporting_enabled) {
|
| - // Fetch a worker-pool for performing I/O tasks that are not allowed on
|
| - // the main UI thread.
|
| - scoped_refptr<base::TaskRunner> task_runner =
|
| - content::BrowserThread::GetBlockingPool()
|
| - ->GetTaskRunnerWithShutdownBehavior(
|
| - base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
|
| -
|
| // Create an object to monitor files of metrics and include them in reports.
|
| std::unique_ptr<metrics::FileMetricsProvider> file_metrics_provider(
|
| - new metrics::FileMetricsProvider(task_runner,
|
| - g_browser_process->local_state()));
|
| + new metrics::FileMetricsProvider(g_browser_process->local_state()));
|
|
|
| base::FilePath user_data_dir;
|
| if (base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
|
| @@ -225,7 +220,7 @@ std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
| RegisterOrRemovePreviousRunMetricsFile(
|
| report_previous_persistent_histograms, user_data_dir,
|
| ChromeMetricsServiceClient::kBrowserMetricsName,
|
| - metrics::FileMetricsProvider::ASSOCIATE_INTERNAL_PROFILE, task_runner,
|
| + metrics::FileMetricsProvider::ASSOCIATE_INTERNAL_PROFILE,
|
| file_metrics_provider.get());
|
|
|
| // Register the Crashpad metrics files.
|
| @@ -236,7 +231,7 @@ std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
| kCrashpadHistogramAllocatorName,
|
| metrics::FileMetricsProvider::
|
| ASSOCIATE_INTERNAL_PROFILE_OR_PREVIOUS_RUN,
|
| - task_runner, file_metrics_provider.get());
|
| + file_metrics_provider.get());
|
| if (metrics_reporting_enabled) {
|
| base::FilePath active_path;
|
| base::GlobalHistogramAllocator::ConstructFilePaths(
|
|
|