Commit 7c960719 authored by Nicholas Verne's avatar Nicholas Verne Committed by Commit Bot

Crostini USB: suppress notifications for devices with forbidden

interfaces.

This should prevent annoying notifications for docking stations which
have HID and vendor-specific interfaces.

Also, forbid sharing of HUB devices (an oversight in the original impl)
Suppress notifications for BILLBOARD devices (external monitors
connected through USB)

Bug: 1109407
Change-Id: I896b12ec1b2572fdf4f37ed4dc811f655682f7dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2338155
Auto-Submit: Nicholas Verne <nverne@chromium.org>
Reviewed-by: default avatarDavid Munro <davidmunro@google.com>
Commit-Queue: David Munro <davidmunro@google.com>
Cr-Commit-Position: refs/heads/master@{#794933}
parent b81d0e0f
......@@ -268,6 +268,7 @@ CrosUsbDetector::CrosUsbDetector() {
g_cros_usb_detector = this;
guest_os_classes_blocked_.emplace_back(
UsbFilterByClassCode(USB_CLASS_PHYSICAL));
guest_os_classes_blocked_.emplace_back(UsbFilterByClassCode(USB_CLASS_HUB));
guest_os_classes_blocked_.emplace_back(UsbFilterByClassCode(USB_CLASS_HID));
guest_os_classes_blocked_.emplace_back(
UsbFilterByClassCode(USB_CLASS_PRINTER));
......@@ -280,6 +281,8 @@ CrosUsbDetector::CrosUsbDetector() {
UsbFilterByClassCode(USB_CLASS_MASS_STORAGE));
guest_os_classes_without_notif_.emplace_back(
UsbFilterByClassCode(USB_CLASS_VIDEO));
guest_os_classes_without_notif_.emplace_back(
UsbFilterByClassCode(USB_CLASS_BILLBOARD));
guest_os_classes_without_notif_.emplace_back(
UsbFilterByClassCode(USB_CLASS_PERSONAL_HEALTHCARE));
......@@ -372,7 +375,8 @@ bool CrosUsbDetector::ShouldShowNotification(
if ((GetFilteredInterfacesMask(guest_os_classes_without_notif_, device_info) &
allowed_interfaces_mask) != 0) {
VLOG(1) << "At least one notifiable interface found for device";
return true;
// Only notify if no interfaces were suppressed.
return GetUsbInterfaceBaseMask(device_info) == allowed_interfaces_mask;
}
return false;
}
......
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