Move more printing code off of the FILE thread.

Do some trivial cleanups while we are here.

BUG=689520

Review-Url: https://codereview.chromium.org/2965803002
Cr-Commit-Position: refs/heads/master@{#483845}
diff --git a/chrome/browser/printing/print_dialog_cloud_win.cc b/chrome/browser/printing/print_dialog_cloud_win.cc
index d868b776..baecdb40 100644
--- a/chrome/browser/printing/print_dialog_cloud_win.cc
+++ b/chrome/browser/printing/print_dialog_cloud_win.cc
@@ -17,6 +17,7 @@
 #include "base/memory/ref_counted_memory.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/task_scheduler/post_task.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
@@ -107,7 +108,6 @@
 
 scoped_refptr<base::RefCountedMemory> ReadFile(
     const base::FilePath& path_to_file) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
   scoped_refptr<base::RefCountedMemory> data;
   int64_t file_size = 0;
   if (base::GetFileSize(path_to_file, &file_size) && file_size != 0) {
@@ -130,11 +130,11 @@
                               const base::string16& print_ticket,
                               const std::string& file_type) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  content::BrowserThread::PostTaskAndReplyWithResult(
-      content::BrowserThread::FILE, FROM_HERE,
+  base::PostTaskWithTraitsAndReplyWithResult(
+      FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
       base::Bind(&ReadFile, path_to_file),
-      base::Bind(&CreatePrintDialog, browser_context,
-                 print_job_title, print_ticket, file_type));
+      base::Bind(&CreatePrintDialog, browser_context, print_job_title,
+                 print_ticket, file_type));
 }
 
 }  // namespace
diff --git a/chrome/browser/printing/printer_manager_dialog_linux.cc b/chrome/browser/printing/printer_manager_dialog_linux.cc
index 156dda9..43736f9 100644
--- a/chrome/browser/printing/printer_manager_dialog_linux.cc
+++ b/chrome/browser/printing/printer_manager_dialog_linux.cc
@@ -9,15 +9,11 @@
 #include "base/bind.h"
 #include "base/environment.h"
 #include "base/files/file_util.h"
-#include "base/message_loop/message_loop.h"
 #include "base/nix/xdg_util.h"
 #include "base/process/kill.h"
 #include "base/process/launch.h"
-#include "base/strings/string_split.h"
-#include "content/public/browser/browser_thread.h"
-
-using base::Environment;
-using content::BrowserThread;
+#include "base/task_scheduler/post_task.h"
+#include "base/threading/thread_restrictions.h"
 
 namespace {
 
@@ -49,8 +45,8 @@
 // Detect the command based on the deskop environment and open the printer
 // manager dialog.
 void DetectAndOpenPrinterConfigDialog() {
-  DCHECK_CURRENTLY_ON(BrowserThread::FILE);
-  std::unique_ptr<Environment> env(Environment::Create());
+  base::ThreadRestrictions::AssertIOAllowed();
+  std::unique_ptr<base::Environment> env(base::Environment::Create());
 
   bool opened = false;
   switch (base::nix::GetDesktopEnvironment(env.get())) {
@@ -73,13 +69,14 @@
   LOG_IF(ERROR, !opened) << "Failed to open printer manager dialog ";
 }
 
-}  // anonymous namespace
+}  // namespace
 
 namespace printing {
 
 void PrinterManagerDialog::ShowPrinterManagerDialog() {
-  BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
-                          base::BindOnce(&DetectAndOpenPrinterConfigDialog));
+  base::PostTaskWithTraits(
+      FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
+      base::BindOnce(&DetectAndOpenPrinterConfigDialog));
 }
 
 }  // namespace printing
diff --git a/chrome/browser/printing/printer_manager_dialog_win.cc b/chrome/browser/printing/printer_manager_dialog_win.cc
index 5e71976..983dea7 100644
--- a/chrome/browser/printing/printer_manager_dialog_win.cc
+++ b/chrome/browser/printing/printer_manager_dialog_win.cc
@@ -10,31 +10,31 @@
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/path_service.h"
+#include "base/task_scheduler/post_task.h"
 #include "base/threading/thread.h"
-#include "chrome/browser/browser_process.h"
-#include "content/public/browser/browser_thread.h"
 
-using content::BrowserThread;
-
-namespace printing {
+namespace {
 
 // A helper callback that opens the printer management dialog.
 void OpenPrintersDialogCallback() {
   base::FilePath sys_dir;
   PathService::Get(base::DIR_SYSTEM, &sys_dir);
-  base::FilePath rundll32 = sys_dir.AppendASCII("rundll32.exe");
-  base::FilePath shell32dll = sys_dir.AppendASCII("shell32.dll");
+  base::FilePath rundll32 = sys_dir.Append(L"rundll32.exe");
+  base::FilePath shell32dll = sys_dir.Append(L"shell32.dll");
 
   std::wstring args(shell32dll.value());
   args.append(L",SHHelpShortcuts_RunDLL PrintersFolder");
-  ShellExecute(NULL, L"open", rundll32.value().c_str(), args.c_str(), NULL,
-               SW_SHOWNORMAL);
+  ShellExecute(nullptr, L"open", rundll32.value().c_str(), args.c_str(),
+               nullptr, SW_SHOWNORMAL);
 }
 
+}  // namespace
+
+namespace printing {
+
 void PrinterManagerDialog::ShowPrinterManagerDialog() {
-  BrowserThread::PostTask(
-      BrowserThread::FILE,
-      FROM_HERE,
+  base::PostTaskWithTraits(
+      FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
       base::Bind(OpenPrintersDialogCallback));
 }