| Index: chrome/browser/metrics/chromeos_metrics_provider.cc
 | 
| diff --git a/chrome/browser/metrics/chromeos_metrics_provider.cc b/chrome/browser/metrics/chromeos_metrics_provider.cc
 | 
| index aea298f281fba75884d59cbcfc4c62ef8b98875b..bf60a3cf2f113c3b14b492c8719493acb152d983 100644
 | 
| --- a/chrome/browser/metrics/chromeos_metrics_provider.cc
 | 
| +++ b/chrome/browser/metrics/chromeos_metrics_provider.cc
 | 
| @@ -11,6 +11,9 @@
 | 
|  #include "base/strings/string_number_conversions.h"
 | 
|  #include "base/strings/string_util.h"
 | 
|  #include "base/strings/utf_string_conversions.h"
 | 
| +#include "base/task_scheduler/post_task.h"
 | 
| +#include "base/task_scheduler/task_traits.h"
 | 
| +#include "base/threading/thread_restrictions.h"
 | 
|  #include "chrome/browser/browser_process.h"
 | 
|  #include "chrome/browser/chromeos/arc/arc_session_manager.h"
 | 
|  #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
 | 
| @@ -23,7 +26,6 @@
 | 
|  #include "components/prefs/pref_registry_simple.h"
 | 
|  #include "components/prefs/pref_service.h"
 | 
|  #include "components/user_manager/user_manager.h"
 | 
| -#include "content/public/browser/browser_thread.h"
 | 
|  #include "device/bluetooth/bluetooth_adapter.h"
 | 
|  #include "device/bluetooth/bluetooth_adapter_factory.h"
 | 
|  #include "device/bluetooth/bluetooth_device.h"
 | 
| @@ -167,18 +169,20 @@ void ChromeOSMetricsProvider::OnDidCreateMetricsLog() {
 | 
|  
 | 
|  void ChromeOSMetricsProvider::InitTaskGetHardwareClass(
 | 
|      const base::Closure& callback) {
 | 
| -  // Run the (potentially expensive) task on the FILE thread to avoid blocking
 | 
| +  // Run the (potentially expensive) task in the background to avoid blocking
 | 
|    // the UI thread.
 | 
| -  content::BrowserThread::PostTaskAndReply(
 | 
| -      content::BrowserThread::FILE,
 | 
| +  base::PostTaskWithTraitsAndReply(
 | 
|        FROM_HERE,
 | 
| -      base::Bind(&ChromeOSMetricsProvider::InitTaskGetHardwareClassOnFileThread,
 | 
| -                 weak_ptr_factory_.GetWeakPtr()),
 | 
| +      {base::MayBlock(), base::TaskPriority::BACKGROUND,
 | 
| +       base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
 | 
| +      base::BindOnce(
 | 
| +          &ChromeOSMetricsProvider::InitTaskGetHardwareClassOnBackgroundThread,
 | 
| +          weak_ptr_factory_.GetWeakPtr()),
 | 
|        callback);
 | 
|  }
 | 
|  
 | 
| -void ChromeOSMetricsProvider::InitTaskGetHardwareClassOnFileThread() {
 | 
| -  DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
 | 
| +void ChromeOSMetricsProvider::InitTaskGetHardwareClassOnBackgroundThread() {
 | 
| +  base::ThreadRestrictions::AssertWaitAllowed();
 | 
|    chromeos::system::StatisticsProvider::GetInstance()->GetMachineStatistic(
 | 
|        "hardware_class", &hardware_class_);
 | 
|  }
 | 
| 
 |