Commit 33ea6aab authored by Gavin Williams's avatar Gavin Williams Committed by Commit Bot

Add USB printer support for CrOS printer status requests

For USB printers,the printer status in print preview will reflect if
the USB printer is currently connected or disconnected to the device.
The IPP printer status request mechanism does not work for USB
connected printers.

A later enhancement will add ability to detect when printers are
connected or disconnected to the device while print preview is open and
update the status accordingly.

Bug: 1059607
Change-Id: Ia3835dac5d080d98d3834c76a1ede5cb0397601b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2249384Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Reviewed-by: default avatarZentaro Kavanagh <zentaro@chromium.org>
Commit-Queue: Gavin Williams <gavinwill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#780844}
parent 27a48336
......@@ -327,6 +327,25 @@ class CupsPrintersManagerImpl
return;
}
// For USB printers, return NO ERROR if the printer is connected or PRINTER
// UNREACHABLE if the printer is disconnected.
if (printer->IsUsbProtocol()) {
CupsPrinterStatus printer_status(printer_id);
if (FindDetectedPrinter(printer_id)) {
printer_status.AddStatusReason(
CupsPrinterStatus::CupsPrinterStatusReason::Reason::kNoError,
CupsPrinterStatus::CupsPrinterStatusReason::Severity::
kUnknownSeverity);
} else {
printer_status.AddStatusReason(
CupsPrinterStatus::CupsPrinterStatusReason::Reason::
kPrinterUnreachable,
CupsPrinterStatus::CupsPrinterStatusReason::Severity::kError);
}
std::move(cb).Run(std::move(printer_status));
return;
}
base::Optional<UriComponents> parsed_uri = ParseUri(printer->uri());
// Behavior for querying a non-IPP uri is undefined and disallowed.
if (!parsed_uri || !IsIppUri(printer->uri())) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment