fix: bail early if no printers on the network (#22518)

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot]
2020-03-04 16:19:05 +09:00
committed by GitHub
parent 9257c315ac
commit cac6db76a0
2 changed files with 9 additions and 1 deletions

View File

@@ -1304,7 +1304,7 @@ Returns [`PrinterInfo[]`](structures/printer-info.md)
* `footer` String (optional) - String to be printed as page footer.
* `callback` Function (optional)
* `success` Boolean - Indicates success of the print call.
* `failureReason` String - Called back if the print fails; can be `cancelled` or `failed`.
* `failureReason` String - Error description called back if the print fails.
Prints window's web page. When `silent` is set to `true`, Electron will pick
the system's default printer if `deviceName` is empty and the default settings for printing.

View File

@@ -1747,6 +1747,14 @@ void WebContents::OnGetDefaultPrinter(
base::string16 printer_name =
device_name.empty() ? default_printer : device_name;
// If there are no valid printers available on the network, we bail.
if (printer_name.empty() || !IsDeviceNameValid(printer_name)) {
if (print_callback)
std::move(print_callback).Run(false, "no valid printers available");
return;
}
print_settings.SetStringKey(printing::kSettingDeviceName, printer_name);
auto* print_view_manager =