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 f3fb0df256b56abce76c6447717c20fe3fb83691..0f04e4afa16e0b2e3c553526d70af249bb4746a6 100644 |
--- a/chrome/browser/ui/webui/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview_handler.cc |
@@ -401,18 +401,23 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) { |
bool print_to_pdf = false; |
settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); |
+ bool open_pdf_in_preview = false; |
+#if defined(OS_MACOSX) |
+ open_pdf_in_preview = settings->HasKey(printing::kSettingOpenPDFInPreview); |
+#endif |
+ |
settings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); |
bool is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); |
bool is_cloud_dialog = false; |
settings->GetBoolean(printing::kSettingCloudPrintDialog, &is_cloud_dialog); |
- if (is_cloud_printer) { |
+ if (is_cloud_printer && !open_pdf_in_preview) { |
std::string print_ticket; |
args->GetString(1, &print_ticket); |
SendCloudPrintJob(*settings, print_ticket); |
- } else if (print_to_pdf) { |
+ } else if (print_to_pdf && !open_pdf_in_preview) { |
HandlePrintToPdf(*settings); |
- } else if (is_cloud_dialog) { |
+ } else if (is_cloud_dialog && !open_pdf_in_preview) { |
HandlePrintWithCloudPrint(); |
} else { |
ReportPrintSettingsStats(*settings); |