the Chromium logo

The Chromium Projects

How to file WebHID bugs

When filing a WebHID bug, please attach some information so we can debug the issue.

Product Information

Many issues only occur with a particular device. When filing a WebHID API bug, please provide a link to a page describing the device you are using so that other developers can identify it.

Examples:

chrome://device-log

chrome://device-log displays a filtered view of logs on multiple platforms.

If there are any messages with type HID, please include them in the bug.

General HID Inspection Tools

These general tools will help you explore devices that you are attempting to communicate with.

Web

Use HID Explorer to capture information about your device and add it to the bug.

If your device has multiple HID interfaces it will appear as multiple devices in HID Explorer, please include information for all device interfaces.

If you can connect to your device in the browser and capture its information with HID Explorer it is usually not necessary to use the other tools listed in this section as they provide the same information.

Windows

Use winhiddump to return a report descriptor reconstructed from the information available through the Windows HID API. This will likely differ from the actual report descriptor.

Please include the winhiddump output in the bug report.

If the device is connected with USB, use UsbTreeView to capture device information. Select your device in the tree view pane and copy the device information into the bug.

macOS

Use the macOS I/O Registry to output information about all connected HID devices:

ioreg -c IOHIDInterface -r -d 1 > deviceinfo.txt

The device can be identified by its product name ("Product" key) or its vendor and product IDs ("VendorID" and "ProductID" keys).

IOHIDInterface  <class IOHIDInterface, id 0x10000e745, registered, matched, active, busy 0 (11 ms), retain 10>
{
  "Transport" = "Bluetooth Low Energy"
  "HIDDefaultBehavior" = Yes
  "Manufacturer" = "Logitech"
  "Product" = "MX Master 3"
  "MaxInputReportSize" = 20
  "DeviceUsagePairs" = ({"DeviceUsagePage"=1,"DeviceUsage"=6},{"DeviceUsagePage"=1,"DeviceUsage"=2},{"DeviceUsagePage"=1,"DeviceUsage"=1},{"DeviceUsagePage"=65347,"DeviceUsage"=514})
  "VendorIDSource" = 2
  "MaxOutputReportSize" = 20
  "ReportDescriptor" = <05010906a1018501050719e029e71500250175019508810295067508150026a400050719002aa4008100c005010902a10185020901a1009510750115002501050919012910810205011601f826ff07750c95020930093181061581257f75089501093881069501050c0a38028106c0c00643ff0a0202a101851175089513150026ff000902810009029100c0>
  "CountryCode" = 0
  "VendorID" = 1133
  "VersionNumber" = 19
  "IOServiceDEXTEntitlements" = ("com.apple.developer.driverkit.transport.hid")
  "IODEXTMatchCount" = 1
  "PrimaryUsage" = 6
  "ProductID" = 45091
  "ReportInterval" = 8000
  "PrimaryUsagePage" = 1
  "DeviceOpenedByEventSystem" = Yes
  "MaxFeatureReportSize" = 1
}

Please include in your bug report:

Linux

Use lsusb -v to output verbose information about USB devices, if your device is USB.

The Linux kernel exposes the HID report descriptors for connected devices through a debug filesystem interface. Find your device in the list:

sudo ls /sys/kernel/debug/hid

Directories in /sys/kernel/debug/hid represent HID interfaces on connected devices. The name of each directory has the form aaaa:bbbb:cccc.dddd where:

The report descriptor is available as a file named rdesc inside the directory:

sudo cat /sys/kernel/debug/hid/0005:046D:B023.006F/rdesc

Please include the lsusb -v output, edited to only include information for your device. Please also include rdesc for each HID interface exposed by the device.