| Index: printing/backend/print_backend_cups.cc
|
| ===================================================================
|
| --- printing/backend/print_backend_cups.cc (revision 69204)
|
| +++ printing/backend/print_backend_cups.cc (working copy)
|
| @@ -19,6 +19,7 @@
|
| #include "base/values.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "printing/backend/cups_helper.h"
|
| +#include "printing/backend/print_backend_consts.h"
|
|
|
| #if !defined(OS_MACOSX)
|
| GCRY_THREAD_OPTION_PTHREAD_IMPL;
|
| @@ -76,11 +77,10 @@
|
|
|
| static const char kCUPSPrinterInfoOpt[] = "printer-info";
|
| static const char kCUPSPrinterStateOpt[] = "printer-state";
|
| -static const char kCUPSPrintServerURL[] = "print_server_url";
|
|
|
| class PrintBackendCUPS : public PrintBackend {
|
| public:
|
| - explicit PrintBackendCUPS(const GURL& print_server_url);
|
| + PrintBackendCUPS(const GURL& print_server_url, bool blocking);
|
| virtual ~PrintBackendCUPS() {}
|
|
|
| // PrintBackend implementation.
|
| @@ -100,10 +100,11 @@
|
| FilePath GetPPD(const char* name);
|
|
|
| GURL print_server_url_;
|
| + bool blocking_;
|
| };
|
|
|
| -PrintBackendCUPS::PrintBackendCUPS(const GURL& print_server_url)
|
| - : print_server_url_(print_server_url) {
|
| +PrintBackendCUPS::PrintBackendCUPS(const GURL& print_server_url, bool blocking)
|
| + : print_server_url_(print_server_url), blocking_(blocking) {
|
| }
|
|
|
| void PrintBackendCUPS::EnumeratePrinters(PrinterList* printer_list) {
|
| @@ -194,13 +195,16 @@
|
| g_gcrypt_initializer.Get();
|
| #endif
|
|
|
| - std::string print_server_url_str;
|
| + std::string print_server_url_str, cups_blocking;
|
| if (print_backend_settings) {
|
| print_backend_settings->GetString(kCUPSPrintServerURL,
|
| &print_server_url_str);
|
| +
|
| + print_backend_settings->GetString(kCUPSBlocking,
|
| + &cups_blocking);
|
| }
|
| GURL print_server_url(print_server_url_str.c_str());
|
| - return new PrintBackendCUPS(print_server_url);
|
| + return new PrintBackendCUPS(print_server_url, cups_blocking == kValueTrue);
|
| }
|
|
|
| int PrintBackendCUPS::GetDests(cups_dest_t** dests) {
|
| @@ -208,6 +212,7 @@
|
| return cupsGetDests(dests);
|
| } else {
|
| HttpConnectionCUPS http(print_server_url_);
|
| + http.SetBlocking(blocking_);
|
| return cupsGetDests2(http.http(), dests);
|
| }
|
| }
|
| @@ -233,7 +238,7 @@
|
| // To distinguish error case from the normal return, will check result file
|
| // size agains content length.
|
| HttpConnectionCUPS http(print_server_url_);
|
| - http.SetBlocking(false);
|
| + http.SetBlocking(blocking_);
|
| ppd_file_path = cupsGetPPD2(http.http(), name);
|
| // Check if the get full PPD, since non-blocking call may simply return
|
| // normally after timeout expired.
|
|
|