Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3941)

Unified Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 2463473002: Present the printer list from preferences for Chrome OS. (Closed)
Patch Set: tidy Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()));
}

Powered by Google App Engine
This is Rietveld 408576698