Try to read BOS and WebUSB descriptors from USB devices.

When a USB 2.1 or higher device is enumerated this patch attempts to
read its binary device object store (BOS) descriptor. If a WebUSB
platform capability descriptor is found the WebUSB landing page and
allowed origin descriptors are requested.

These requests should be safe as the USB 3.0 specification requires
that devices announcing support for version 2.1 (which is just USB 3.0
for non-super-speed devices) or higher must implement the BOS
descriptor request.

BUG=492204

Review URL: https://codereview.chromium.org/1253163005

Cr-Commit-Position: refs/heads/master@{#342028}
4 files changed