[Gardener]Revert "usb: Allow detaching USB drivers on Android (part 1)"

This reverts commit 785fc4d8bd015a5982c065b08042f4da3d3e152b.

Reason for revert: The tests introduced in this CL is causing
regression on chromium/ci/Linux UBSan Tests

BUG=393444513

Original change's description:
> usb: Allow detaching USB drivers on Android (part 1)
>
> 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}

Bug: http://crbug.com/40137537
Change-Id: I69474e23064caeaacfacd130b037f146db6c8341
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6218042
Commit-Queue: Keita Suzuki <suzukikeita@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Keita Suzuki <suzukikeita@chromium.org>
Reviewed-by: Matt Reynolds <mattreynolds@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1413851}
13 files changed
tree: a99183a7b5ebb2f0315b5cf208d686c15fc48ff4
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. crypto/
  16. dbus/
  17. device/
  18. docs/
  19. extensions/
  20. fuchsia_web/
  21. gin/
  22. google_apis/
  23. gpu/
  24. headless/
  25. infra/
  26. ios/
  27. ipc/
  28. media/
  29. mojo/
  30. native_client_sdk/
  31. net/
  32. pdf/
  33. ppapi/
  34. printing/
  35. remoting/
  36. rlz/
  37. sandbox/
  38. services/
  39. skia/
  40. sql/
  41. storage/
  42. styleguide/
  43. testing/
  44. third_party/
  45. tools/
  46. ui/
  47. url/
  48. webkit/
  49. .clang-format
  50. .clang-tidy
  51. .clangd
  52. .git-blame-ignore-revs
  53. .gitallowed
  54. .gitattributes
  55. .gitignore
  56. .gitmodules
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. CPPLINT.cfg
  68. CRYPTO_OWNERS
  69. DEPS
  70. DIR_METADATA
  71. LICENSE
  72. LICENSE.chromium_os
  73. OWNERS
  74. PRESUBMIT.py
  75. PRESUBMIT_test.py
  76. PRESUBMIT_test_mocks.py
  77. README.md
  78. WATCHLISTS
README.md

Logo 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.