Index: chrome/browser/ui/webui/print_preview_handler.cc |
diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc |
index 53faf1ac950bb3e6c023c2973e89fd3cb4b5a47b..719e08428b890df0d27be042857cec70c5d9420b 100644 |
--- a/chrome/browser/ui/webui/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview_handler.cc |
@@ -57,7 +57,7 @@ namespace { |
const char kDisableColorOption[] = "disableColorOption"; |
const char kSetColorAsDefault[] = "setColorAsDefault"; |
-const char kSetDuplexAsDefault[] = "setDuplexAsDefault"; |
+const char kPrinterDefaultDuplexValue[] = "printerDefaultDuplexValue"; |
#if defined(USE_CUPS) |
const char kColorDevice[] = "ColorDevice"; |
@@ -273,7 +273,7 @@ class PrintSystemTaskProxy |
VLOG(1) << "Get printer capabilities start for " << printer_name; |
printing::PrinterCapsAndDefaults printer_info; |
bool supports_color = true; |
- bool set_duplex_as_default = false; |
+ int default_duplex_setting_value = printing::UNKNOWN; |
if (!print_backend_->GetPrinterCapsAndDefaults(printer_name, |
&printer_info)) { |
return; |
@@ -306,9 +306,12 @@ class PrintSystemTaskProxy |
ch = ppdFindChoice(option, option->defchoice); |
} |
- if (ch != NULL && strcmp(ch->choice, kDuplexNone) != 0) |
- set_duplex_as_default = true; |
- |
+ if (ch != NULL) { |
+ if (strcmp(ch->choice, kDuplexNone) != 0) |
+ default_duplex_setting_value = printing::TWO_SIDED; |
+ else |
+ default_duplex_setting_value = printing::ONE_SIDED; |
+ } |
ppdClose(ppd); |
} |
file_util::Delete(ppd_file_path, false); |
@@ -319,11 +322,16 @@ class PrintSystemTaskProxy |
// http://msdn.microsoft.com/en-us/windows/hardware/gg463431. |
supports_color = (printer_info.printer_capabilities.find(kPskColor) != |
std::string::npos); |
- set_duplex_as_default = |
- (printer_info.printer_defaults.find(kPskDuplexFeature) != |
- std::string::npos) && |
- (printer_info.printer_defaults.find(kPskTwoSided) != |
- std::string::npos); |
+ |
+ if (printer_info.printer_defaults.find(kPskDuplexFeature) != |
+ std::string::npos) { |
+ if (printer_info.printer_defaults.find(kPskTwoSided) != |
+ std::string::npos) { |
+ default_duplex_setting_value = printing::TWO_SIDED; |
+ } else { |
+ default_duplex_setting_value = printing::ONE_SIDED; |
+ } |
+ } |
#else |
NOTIMPLEMENTED(); |
#endif |
@@ -336,7 +344,8 @@ class PrintSystemTaskProxy |
settings_info.SetBoolean(kSetColorAsDefault, |
PrintPreviewHandler::last_used_color_setting_); |
} |
- settings_info.SetBoolean(kSetDuplexAsDefault, set_duplex_as_default); |
+ settings_info.SetInteger(kPrinterDefaultDuplexValue, |
+ default_duplex_setting_value); |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
NewRunnableMethod(this, |