Chromium Code Reviews| 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..35364c1787a90bcb550c4c6942e2ca3e59180652 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. |
| @@ -393,21 +383,18 @@ std::pair<std::string, std::string> GetPrinterNameAndDescription( |
| if (it != printer.options.end()) |
| real_description = it->second; |
| return std::make_pair(real_name, real_description); |
| +#elif defined(OS_CHROMEOS) |
| + // For Chrome OS |printer.printer_display_name| is the human readable name and |
|
Lei Zhang
2016/11/03 07:39:50
So is ChromeOS more in line with Mac then? Maybe d
skau
2016/11/03 21:58:27
Per discussion, I'm going to try to align all the
Lei Zhang
2016/11/03 22:06:12
Agreed, I think that's a safer bet.
|
| + // |printer.printer_name| is the name used in CUPS. |
| + return std::make_pair(printer.printer_display_name, |
| + printer.printer_description); |
| #else |
| return std::make_pair(printer.printer_name, printer.printer_description); |
| #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 +416,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 +684,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 +1220,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())); |
| } |