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));
}