Blob Blame History Raw
diff -up chromium-99.0.4844.51/printing/backend/cups_helper.cc.el7cups chromium-99.0.4844.51/printing/backend/cups_helper.cc
--- chromium-99.0.4844.51/printing/backend/cups_helper.cc.el7cups	2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/printing/backend/cups_helper.cc	2022-03-05 15:17:45.516887985 -0500
@@ -34,18 +34,6 @@ namespace printing {
 // This section contains helper code for PPD parsing for semantic capabilities.
 namespace {
 
-// Function availability can be tested by checking whether its address is not
-// nullptr. Weak symbols remove the need for platform specific build flags and
-// allow for appropriate CUPS usage on platforms with non-uniform version
-// support, namely Linux.
-#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x
-
-WEAK_CUPS_FN(httpConnect2);
-
-// Timeout for establishing a CUPS connection.  It is expected that cupsd is
-// able to start and respond on all systems within this duration.
-constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
-
 // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
 constexpr int32_t kDefaultMaxCopies = 9999;
 constexpr char kCupsMaxCopies[] = "cupsMaxCopies";
@@ -527,8 +515,7 @@ const int kDefaultIPPServerPort = 631;
 // Helper wrapper around http_t structure, with connection and cleanup
 // functionality.
 HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url,
-                                       http_encryption_t encryption,
-                                       bool blocking)
+                                       http_encryption_t encryption)
     : http_(nullptr) {
   // If we have an empty url, use default print server.
   if (print_server_url.is_empty())
@@ -538,17 +525,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
   if (port == url::PORT_UNSPECIFIED)
     port = kDefaultIPPServerPort;
 
-  if (httpConnect2) {
-    http_ = httpConnect2(print_server_url.host().c_str(), port,
-                         /*addrlist=*/nullptr, AF_UNSPEC, encryption,
-                         blocking ? 1 : 0, kCupsTimeout.InMilliseconds(),
-                         /*cancel=*/nullptr);
-  } else {
-    // Continue to use deprecated CUPS calls because because older Linux
-    // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
-    http_ =
-        httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
-  }
+  // Continue to use deprecated CUPS calls because because older Linux
+  // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
+  http_ =
+      httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
 
   if (!http_) {
     LOG(ERROR) << "CP_CUPS: Failed connecting to print server: "
@@ -556,8 +536,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
     return;
   }
 
-  if (!httpConnect2)
-    httpBlocking(http_, blocking ? 1 : 0);
 }
 
 HttpConnectionCUPS::~HttpConnectionCUPS() {
@@ -565,6 +543,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS(
     httpClose(http_);
 }
 
+void HttpConnectionCUPS::SetBlocking(bool blocking) {
+  httpBlocking(http_, blocking ? 1 : 0);
+}
+
 http_t* HttpConnectionCUPS::http() {
   return http_;
 }
diff -up chromium-99.0.4844.51/printing/backend/cups_helper.h.el7cups chromium-99.0.4844.51/printing/backend/cups_helper.h
--- chromium-99.0.4844.51/printing/backend/cups_helper.h.el7cups	2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/printing/backend/cups_helper.h	2022-03-05 15:17:45.517887991 -0500
@@ -34,10 +34,11 @@ constexpr cups_ptype_t kDestinationsFilt
 class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS {
  public:
   HttpConnectionCUPS(const GURL& print_server_url,
-                     http_encryption_t encryption,
-                     bool blocking);
+                     http_encryption_t encryption);
   ~HttpConnectionCUPS();
 
+  void SetBlocking(bool blocking);
+
   http_t* http();
 
  private:
diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups chromium-99.0.4844.51/printing/backend/print_backend_cups.cc
--- chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups	2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/printing/backend/print_backend_cups.cc	2022-03-05 15:17:45.517887991 -0500
@@ -146,7 +146,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
   // not showing as available.  Using cupsEnumDests() allows us to do our own
   // filtering should any duplicates occur.
   CupsDestsData dests_data = {0, nullptr};
-  ipp_status_t last_error = IPP_STATUS_OK;
+  ipp_status_t last_error = IPP_OK;
   if (print_server_url_.is_empty()) {
     VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers";
     if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs,
@@ -173,7 +173,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
     // no printer drivers installed.  Rely upon CUPS error code to distinguish
     // between these.
     DCHECK(!dests_data.dests);
-    if (last_error != IPP_STATUS_ERROR_NOT_FOUND) {
+    if (last_error != IPP_NOT_FOUND) {
       VLOG(1) << "CUPS: Error getting printers from CUPS server"
               << ", server: " << print_server_url_
               << ", error: " << static_cast<int>(last_error) << " - "
@@ -336,7 +336,8 @@ int PrintBackendCUPS::GetDests(cups_dest
   if (print_server_url_.is_empty())
     return cupsGetDests2(CUPS_HTTP_DEFAULT, dests);
 
-  HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+  HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+  http.SetBlocking(blocking_);
 
   // This call must be made in the same scope as `http` because its destructor
   // closes the connection.
@@ -362,7 +363,8 @@ base::FilePath PrintBackendCUPS::GetPPD(
     // connection will timeout after 10 seconds of no data period. And it will
     // return the same way as if data was completely and successfully
     // downloaded.
-    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+    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.
@@ -398,7 +400,8 @@ PrintBackendCUPS::ScopedDestination Prin
     // Use default (local) print server.
     dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr);
   } else {
-    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+    http.SetBlocking(blocking_);
     dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr);
   }
   return ScopedDestination(dest);