refactor: unduplicate MediaStreamDevicesController (#34895)
* refactor: unduplicate MediaStreamDevicesController * restore old logic for GUM_* request types * lint * gn format * add test for unsupported getDisplayMedia * simplify + comment
This commit is contained in:
parent
60b6e74e3f
commit
3c7d446fad
10 changed files with 196 additions and 427 deletions
|
@ -0,0 +1,88 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Rose <japthorp@slack-corp.com>
|
||||
Date: Tue, 12 Jul 2022 16:51:43 -0700
|
||||
Subject: short-circuit permissions checks in MediaStreamDevicesController
|
||||
|
||||
The //components/permissions architecture is complicated and not that
|
||||
widely used in Chromium, and mostly oriented around showing permissions
|
||||
UI and/or remembering per-site permissions, which we're not interested
|
||||
in.
|
||||
|
||||
Since we do a permissions check prior to invoking the
|
||||
MediaStreamDevicesController, and don't (yet) provide the ability to set
|
||||
granular permissions (e.g. allow video but not audio), just
|
||||
short-circuit all the permissions checks in MSDC for now to allow us to
|
||||
unduplicate this code.
|
||||
|
||||
diff --git a/components/webrtc/media_stream_devices_controller.cc b/components/webrtc/media_stream_devices_controller.cc
|
||||
index 353ed84da62b954a90c8d0a886495c0822f30429..1a1162ba960419a4de5eb2839ebc3debadca86d5 100644
|
||||
--- a/components/webrtc/media_stream_devices_controller.cc
|
||||
+++ b/components/webrtc/media_stream_devices_controller.cc
|
||||
@@ -93,11 +93,14 @@ void MediaStreamDevicesController::RequestPermissions(
|
||||
|
||||
std::vector<blink::PermissionType> permission_types;
|
||||
|
||||
+#if 0
|
||||
permissions::PermissionManager* permission_manager =
|
||||
permissions::PermissionsClient::Get()->GetPermissionManager(
|
||||
web_contents->GetBrowserContext());
|
||||
+#endif
|
||||
|
||||
if (controller->ShouldRequestAudio()) {
|
||||
+#if 0
|
||||
permissions::PermissionResult permission_status =
|
||||
permission_manager->GetPermissionStatusForCurrentDocument(
|
||||
ContentSettingsType::MEDIASTREAM_MIC, rfh);
|
||||
@@ -109,10 +112,12 @@ void MediaStreamDevicesController::RequestPermissions(
|
||||
permissions::PermissionStatusSource::FEATURE_POLICY);
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
permission_types.push_back(blink::PermissionType::AUDIO_CAPTURE);
|
||||
}
|
||||
if (controller->ShouldRequestVideo()) {
|
||||
+#if 0
|
||||
permissions::PermissionResult permission_status =
|
||||
permission_manager->GetPermissionStatusForCurrentDocument(
|
||||
ContentSettingsType::MEDIASTREAM_CAMERA, rfh);
|
||||
@@ -124,6 +129,7 @@ void MediaStreamDevicesController::RequestPermissions(
|
||||
permissions::PermissionStatusSource::FEATURE_POLICY);
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
permission_types.push_back(blink::PermissionType::VIDEO_CAPTURE);
|
||||
|
||||
@@ -135,6 +141,7 @@ void MediaStreamDevicesController::RequestPermissions(
|
||||
// pan-tilt-zoom permission and there are suitable PTZ capable devices
|
||||
// available.
|
||||
if (request.request_pan_tilt_zoom_permission && has_pan_tilt_zoom_camera) {
|
||||
+#if 0
|
||||
permission_status =
|
||||
permission_manager->GetPermissionStatusForCurrentDocument(
|
||||
ContentSettingsType::CAMERA_PAN_TILT_ZOOM, rfh);
|
||||
@@ -144,6 +151,7 @@ void MediaStreamDevicesController::RequestPermissions(
|
||||
controller->RunCallback(/*blocked_by_permissions_policy=*/false);
|
||||
return;
|
||||
}
|
||||
+#endif
|
||||
|
||||
permission_types.push_back(blink::PermissionType::CAMERA_PAN_TILT_ZOOM);
|
||||
}
|
||||
@@ -425,6 +433,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
if (rfh->GetLastCommittedOrigin().GetURL() != request_.security_origin) {
|
||||
return false;
|
||||
}
|
||||
+#if 0
|
||||
permissions::PermissionResult result =
|
||||
permissions::PermissionsClient::Get()
|
||||
->GetPermissionManager(web_contents_->GetBrowserContext())
|
||||
@@ -433,6 +442,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
DCHECK_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
|
||||
return true;
|
||||
}
|
||||
+#endif
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue