Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5102)

Unified Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 909143004: Add support for starting an extension print job to print preview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: vitaly's feedback Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698