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 b9cf3f3e7794d1437265518f58f1c92a2d863fd9..e8666221aa153d0553db7bc573686528a4bdc675 100644 |
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc |
@@ -846,6 +846,7 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { |
bool print_to_pdf = false; |
bool is_cloud_printer = false; |
bool print_with_privet = false; |
+ bool print_with_extension = false; |
bool open_pdf_in_preview = false; |
#if defined(OS_MACOSX) |
@@ -855,6 +856,8 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { |
if (!open_pdf_in_preview) { |
settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); |
settings->GetBoolean(printing::kSettingPrintWithPrivet, &print_with_privet); |
+ settings->GetBoolean(printing::kSettingPrintWithExtension, |
+ &print_with_extension); |
is_cloud_printer = settings->HasKey(printing::kSettingCloudPrintId); |
} |
@@ -896,6 +899,12 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) { |
} |
#endif |
+ if (print_with_extension) { |
+ // TODO(tbarzic): Implement this and record UMA stats. |
+ OnExtensionPrintResult(false, "NOT_IMPLEMENTED"); |
+ return; |
+ } |
+ |
scoped_refptr<base::RefCountedBytes> data; |
base::string16 title; |
if (!GetPreviewDataAndTitle(&data, &title)) { |
@@ -1656,6 +1665,19 @@ void PrintPreviewHandler::OnGotExtensionPrinterCapabilities( |
base::StringValue(printer_id), capabilities); |
} |
+void PrintPreviewHandler::OnExtensionPrintResult(bool success, |
+ const std::string& status) { |
+ if (success) { |
+ ClosePreviewDialog(); |
+ return; |
+ } |
+ |
+ // TODO(tbarzic): This function works for extension printers case too, but it |
+ // should be renamed to something more generic. |
+ web_ui()->CallJavascriptFunction("onPrivetPrintFailed", |
+ base::StringValue(status)); |
+} |
+ |
void PrintPreviewHandler::RegisterForMergeSession() { |
DCHECK(!reconcilor_); |
Profile* profile = Profile::FromWebUI(web_ui()); |