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. |