WebLayer: Add Microphone and Camera capabilities.
MediaStreamDevicesController is moved from Chrome into
//components/webrtc. There's a new delegate class
MediaStreamDeviceEnumerator which removes the dependency on
MediaCaptureDevicesDispatcher, and some Chrome-specific
responsibilities are moved to PermissionBubbleMediaAccessHandler.
The only interesting part of Chrome's
MediaStreamDevicePermissionContext is policy handling code, which is
not important for WebLayer, so it's not moved or copied.
Some code for re-prompting for Android permissions is moved to
the new android_permissions_util.cc, and some is moved to
PermissionsClient. This is used by geolocation as well, so it
obviates the need for a couple methods on the geolocation context
delegate.
Unlike Clank, which shows a system notification when streaming,
WebLayer does not indicate when the microphone or camera is in use.
TODO: tests
TODO: show indication when streaming, if desired
Bug: 1025622
Change-Id: Idf6c4a066ff75b581fe6df98c8b29dac9bfcc16b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2121426
Commit-Queue: Evan Stade <[email protected]>
Reviewed-by: Clark DuVall <[email protected]>
Reviewed-by: Kamila Hasanbega <[email protected]>
Reviewed-by: Andy Paicu <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Cr-Commit-Position: refs/heads/master@{#756342}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 2c4dbcac..1b1ae60 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -761,8 +761,6 @@
"media/webrtc/media_stream_device_permission_context.h",
"media/webrtc/media_stream_device_permissions.cc",
"media/webrtc/media_stream_device_permissions.h",
- "media/webrtc/media_stream_devices_controller.cc",
- "media/webrtc/media_stream_devices_controller.h",
"media/webrtc/native_desktop_media_list.cc",
"media/webrtc/native_desktop_media_list.h",
"media/webrtc/permission_bubble_media_access_handler.cc",
@@ -2199,6 +2197,7 @@
"//components/web_resource",
"//components/webdata/common",
"//components/webdata_services",
+ "//components/webrtc",
"//components/webrtc_logging/browser",
"//components/webrtc_logging/common",
"//content/app/resources",