Index: printing/backend/print_backend_chromeos.cc |
diff --git a/printing/backend/print_backend_chromeos.cc b/printing/backend/print_backend_chromeos.cc |
index f32bbe1e865cd28656aaa9bc65550af4c7f0a173..35f51b7ec6085e53069e76f3ad61971fe4009a1a 100644 |
--- a/printing/backend/print_backend_chromeos.cc |
+++ b/printing/backend/print_backend_chromeos.cc |
@@ -5,6 +5,13 @@ |
#include "printing/backend/print_backend.h" |
#include "base/logging.h" |
+#include "base/values.h" |
+#include "printing/backend/print_backend_consts.h" |
+#include "url/gurl.h" |
+ |
+#if defined(USE_CUPS) |
+#include "printing/backend/print_backend_cups.h" |
+#endif // defined(USE_CUPS) |
namespace printing { |
@@ -72,8 +79,27 @@ bool PrintBackendChromeOS::IsValidPrinter(const std::string& printer_name) { |
scoped_refptr<PrintBackend> PrintBackend::CreateInstance( |
const base::DictionaryValue* print_backend_settings) { |
+ if (GetNativeCupsEnabled()) { |
+#if defined(USE_CUPS) |
+ std::string print_server_url_str; |
+ std::string cups_blocking; |
+ int encryption = HTTP_ENCRYPT_NEVER; |
+ if (print_backend_settings) { |
+ print_backend_settings->GetString(kCUPSPrintServerURL, |
+ &print_server_url_str); |
+ |
+ print_backend_settings->GetString(kCUPSBlocking, &cups_blocking); |
+ |
+ print_backend_settings->GetInteger(kCUPSEncryption, &encryption); |
+ } |
+ GURL print_server_url(print_server_url_str.c_str()); |
+ return new PrintBackendCUPS(print_server_url, |
+ static_cast<http_encryption_t>(encryption), |
+ cups_blocking == kValueTrue); |
+#endif // defined(USE_CUPS) |
+ } |
+ |
return new PrintBackendChromeOS(); |
} |
} // namespace printing |
- |