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 e087e9183479099f109e9a7c28a12bcb1a2cab31..4ee6c2f77f704465a38de80f304f6c0839254f40 100644 |
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc |
@@ -62,6 +62,7 @@ |
#include "content/public/browser/web_ui.h" |
#include "google_apis/gaia/oauth2_token_service.h" |
#include "printing/backend/print_backend.h" |
+#include "printing/backend/print_backend_consts.h" |
#include "printing/metafile.h" |
#include "printing/metafile_impl.h" |
#include "printing/pdf_render_settings.h" |
@@ -286,19 +287,36 @@ void EnumeratePrintersOnFileThread( |
for (printing::PrinterList::iterator it = printer_list.begin(); |
it != printer_list.end(); ++it) { |
base::DictionaryValue* printer_info = new base::DictionaryValue; |
+ printers->Append(printer_info); |
std::string printer_name; |
+ std::string printer_description; |
#if defined(OS_MACOSX) |
// On Mac, |it->printer_description| specifies the printer name and |
// |it->printer_name| specifies the device name / printer queue name. |
printer_name = it->printer_description; |
+ if (!it->options[kDriverNameTagName].empty()) |
+ printer_description = it->options[kDriverNameTagName]; |
#else |
printer_name = it->printer_name; |
+ printer_description = it->printer_description; |
#endif |
- printer_info->SetString(printing::kSettingPrinterName, printer_name); |
printer_info->SetString(printing::kSettingDeviceName, it->printer_name); |
+ printer_info->SetString(printing::kSettingPrinterDescription, |
+ printer_description); |
+ printer_info->SetString(printing::kSettingPrinterName, printer_name); |
VLOG(1) << "Found printer " << printer_name |
<< " with device name " << it->printer_name; |
- printers->Append(printer_info); |
+ |
+ base::DictionaryValue* options = new base::DictionaryValue; |
+ printer_info->Set(printing::kSettingPrinterOptions, options); |
+ for (std::map<std::string, std::string>::iterator opt = it->options.begin(); |
+ opt != it->options.end(); |
+ ++opt) { |
+ options->SetString(opt->first, opt->second); |
+ } |
+ |
+ VLOG(1) << "Found printer " << printer_name << " with device name " |
+ << it->printer_name; |
} |
VLOG(1) << "Enumerate printers finished, found " << printers->GetSize() |
<< " printers"; |