| 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());
|
|
|