| Index: cloud_print/virtual_driver/posix/printer_driver_util_linux.cc
|
| diff --git a/cloud_print/virtual_driver/posix/printer_driver_util_linux.cc b/cloud_print/virtual_driver/posix/printer_driver_util_linux.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..51d4198767cc64f1f8ed16d8b38cb593f5570114
|
| --- /dev/null
|
| +++ b/cloud_print/virtual_driver/posix/printer_driver_util_linux.cc
|
| @@ -0,0 +1,48 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include <cups/backend.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/posix/printer_driver_util_posix.h"
|
| +#include "cloud_print/virtual_driver/virtual_driver_switches.h"
|
| +
|
| +void LaunchPrintDialog(std::string output_path, std::string job_title,
|
| + 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("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.GetCommandLineString();
|
| +
|
| + if(system(command_line.GetCommandLineString().c_str())== -1 ) {
|
| + LOG(ERROR) << "Unable to call Chrome";
|
| + exit(CUPS_BACKEND_CANCEL);
|
| + }
|
| +
|
| + else {
|
| + LOG(INFO) << "Call to Chrome succeeded";
|
| + }
|
| +}
|
| +
|
|
|