| Index: chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| index 1119b974cb21344b9e07167d50ae48668930743d..42a5088b10f5cbda5ad61163fe323596a27fd2b0 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -49,6 +49,7 @@
|
| #include "chrome/browser/ui/chrome_select_file_policy.h"
|
| #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
|
| #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
|
| +#include "chrome/browser/ui/webui/print_preview/printer_backend_proxy.h"
|
| #include "chrome/browser/ui/webui/print_preview/printer_handler.h"
|
| #include "chrome/browser/ui/webui/print_preview/sticky_settings.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -294,17 +295,6 @@ void PrintToPdfCallback(const scoped_refptr<base::RefCountedBytes>& data,
|
| pdf_file_saved_closure.Run();
|
| }
|
|
|
| -std::string GetDefaultPrinterOnBlockingPoolThread() {
|
| - DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
|
| -
|
| - scoped_refptr<printing::PrintBackend> print_backend(
|
| - printing::PrintBackend::CreateInstance(nullptr));
|
| -
|
| - std::string default_printer = print_backend->GetDefaultPrinterName();
|
| - VLOG(1) << "Default Printer: " << default_printer;
|
| - return default_printer;
|
| -}
|
| -
|
| class PrintingContextDelegate : public printing::PrintingContext::Delegate {
|
| public:
|
| // PrintingContext::Delegate methods.
|
| @@ -398,16 +388,8 @@ std::pair<std::string, std::string> GetPrinterNameAndDescription(
|
| #endif
|
| }
|
|
|
| -void EnumeratePrintersOnBlockingPoolThread(base::ListValue* printers) {
|
| - DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
|
| -
|
| - scoped_refptr<printing::PrintBackend> print_backend(
|
| - printing::PrintBackend::CreateInstance(nullptr));
|
| -
|
| - VLOG(1) << "Enumerate printers start";
|
| - printing::PrinterList printer_list;
|
| - print_backend->EnumeratePrinters(&printer_list);
|
| -
|
| +void PrintersToValues(const printing::PrinterList& printer_list,
|
| + base::ListValue* printers) {
|
| for (const printing::PrinterBasicInfo& printer : printer_list) {
|
| std::unique_ptr<base::DictionaryValue> printer_info(
|
| new base::DictionaryValue);
|
| @@ -429,6 +411,15 @@ void EnumeratePrintersOnBlockingPoolThread(base::ListValue* printers) {
|
| VLOG(1) << "Found printer " << printer_name << " with device name "
|
| << printer.printer_name;
|
| }
|
| +}
|
| +
|
| +void EnumeratePrinters(Profile* profile, base::ListValue* printers) {
|
| + DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
|
| +
|
| + VLOG(1) << "Enumerate printers start";
|
| + printing::PrinterList printer_list =
|
| + printing::EnumeratePrintersOnBlockingPoolThread(profile);
|
| + PrintersToValues(printer_list, printers);
|
| VLOG(1) << "Enumerate printers finished, found " << printers->GetSize()
|
| << " printers";
|
| }
|
| @@ -688,7 +679,7 @@ PrintPreviewUI* PrintPreviewHandler::print_preview_ui() const {
|
| void PrintPreviewHandler::HandleGetPrinters(const base::ListValue* /*args*/) {
|
| base::ListValue* results = new base::ListValue;
|
| BrowserThread::PostBlockingPoolTaskAndReply(
|
| - FROM_HERE, base::Bind(&EnumeratePrintersOnBlockingPoolThread,
|
| + FROM_HERE, base::Bind(&EnumeratePrinters, Profile::FromWebUI(web_ui()),
|
| base::Unretained(results)),
|
| base::Bind(&PrintPreviewHandler::SetupPrinterList,
|
| weak_factory_.GetWeakPtr(), base::Owned(results)));
|
| @@ -1224,7 +1215,7 @@ void PrintPreviewHandler::HandleGetInitialSettings(
|
| SendCloudPrintEnabled();
|
| base::PostTaskAndReplyWithResult(
|
| BrowserThread::GetBlockingPool(), FROM_HERE,
|
| - base::Bind(&GetDefaultPrinterOnBlockingPoolThread),
|
| + base::Bind(&printing::GetDefaultPrinterOnBlockingPoolThread),
|
| base::Bind(&PrintPreviewHandler::SendInitialSettings,
|
| weak_factory_.GetWeakPtr()));
|
| }
|
|
|