
This change mimics the behavior of the "force" option on Android's UsbDeviceConnection.claimInterface() method to allow a site using WebUSB to replace the driver that has already been loaded for the device. This is important on Android because it has been found that some devices ship with drivers for the USB communication and printer device classes even though there isn't an API in the Android SDK for using these drivers. A native Android app can pass the "force" option when claiming the interface but a site using WebUSB cannot. The inability to forcefully detach an existing driver was originally considered a security property of this API however the situation on Android is different from other platforms in that controlling USB devices from applications (rather than with built-in drivers) is the norm. Chrome now also has explicit protection of USB interface classes for which we want to require a site to go through a high-level API, such as cameras and input devices. Launch: http://launch/4370908 BUG=http://crbug.com/40137537 Change-Id: I7dc5a8f0fc3936add1174a8451f3fda67f957ad2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6163483 Reviewed-by: Matt Reynolds <mattreynolds@chromium.org> Auto-Submit: Oleg Nitz <ovn@google.com> Reviewed-by: Jack Hsieh <chengweih@chromium.org> Commit-Queue: Jack Hsieh <chengweih@chromium.org> Commit-Queue: Oleg Nitz <ovn@google.com> Cr-Commit-Position: refs/heads/main@{#1413620}
Chromium
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead,
follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.