Index: cloud_print/virtual_driver/linux/printer_driver_util_linux.cc |
diff --git a/cloud_print/virtual_driver/linux/printer_driver_util_linux.cc b/cloud_print/virtual_driver/linux/printer_driver_util_linux.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7518679ac91f9d40ba872b98dbe1a6da3ce72980 |
--- /dev/null |
+++ b/cloud_print/virtual_driver/linux/printer_driver_util_linux.cc |
@@ -0,0 +1,81 @@ |
+#include <errno.h> |
Albert Bodenhamer
2011/07/08 20:40:13
You need to start the file with a correct header.
|
+#include <fstream> |
+#include <iostream> |
+#include <pwd.h> |
+#include <stdio.h> |
+#include <stdlib.h> |
+#include <string.h> |
Albert Bodenhamer
2011/07/08 20:40:13
This looks like a lot of headers. Are they all re
|
+ |
+#include <cups/backend.h> |
+ |
+#include <sys/stat.h> |
+#include <sys/types.h> |
+#include <sys/wait.h> |
+ |
+#include "base/base_paths.h" |
+#include "base/command_line.h" |
+#include "base/file_path.h" |
+#include "base/logging.h" |
+#include "base/path_service.h" |
+ |
+#include "cloud_print/virtual_driver/linux/printer_driver_util_posix.h" |
+ |
+ |
+namespace switches { |
Albert Bodenhamer
2011/07/08 20:40:13
Extract these to a common location in the print dr
|
+// These constants are duplicated from chrome/common/chrome_switches.cc |
+// in order to avoid dependency problems. |
+ |
+// Used with kCloudPrintFile. Tells Chrome to delete the file when |
+// finished displaying the print dialog. |
+const char kCloudPrintDeleteFile[] = "cloud-print-delete-file"; |
+ |
+// Tells chrome to display the cloud print dialog and upload the |
+// specified file for printing. |
+const char kCloudPrintFile[] = "cloud-print-file"; |
+ |
+// Used with kCloudPrintFile to specify a title for the resulting print |
+// job. |
+const char kCloudPrintJobTitle[] = "cloud-print-job-title"; |
+ |
+// Specifies the mime type to be used when uploading data from the |
+// file referenced by cloud-print-file. |
+// Defaults to "application/pdf" if unspecified. |
+const char kCloudPrintFileType[] = "cloud-print-file-type"; |
+ |
+} |
+ |
+using namespace std; |
Albert Bodenhamer
2011/07/08 20:40:13
It looks like you're referring to std::string belo
|
+ |
+void launchChrome(std::string output_path, std::string job_title, |
Albert Bodenhamer
2011/07/08 20:40:13
Should be LaunchChrome or, even better, LaunchPrin
|
+ std::string current_user){ |
+ std::string set_var; |
+ |
+ // Set Environment variable to control display. |
+ set_var="/home/" + current_user + "/.Xauthority"; |
+ if(setenv("DISPLAY",":0.0",0) == -1) { |
+ LOG(ERROR) << "Unable to set DISPLAY environment variable"; |
+ } |
+ if(setenv("XAUTHORITY",set_var.c_str(),0) == -1) { |
+ LOG(ERROR) << "Unable to set XAUTHORITY environment variable"; |
+ } |
+ |
+ // Construct the call to Chrome |
+ |
+ //FilePath chrome_path("/home/abeera/src/out/Release/chrome"); |
+ FilePath chrome_path("google-chrome"); |
+ FilePath job_path(output_path); |
+ CommandLine command_line(chrome_path); |
+ command_line.AppendSwitchPath(switches::kCloudPrintFile,job_path); |
+ command_line.AppendSwitchNative(switches::kCloudPrintJobTitle, job_title); |
+ command_line.AppendSwitch(switches::kCloudPrintDeleteFile); |
+ LOG(INFO) << "Call to chrome is " << command_line.command_line_string(); |
+ |
+ if(system(command_line.command_line_string().c_str())== -1 ){ |
+ LOG(ERROR) << "Unable to call Chrome"; |
+ } |
+ |
+ else { |
+ LOG(INFO) << "Call to Chrome succeeded"; |
+ } |
+} |
+ |