From: uazo Date: Thu, 28 Sep 2023 07:56:11 +0000 Subject: Partition MediaDeviceId by default and, in windows, hide the presence of the webcam if the user has not given permission License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- components/media_device_salt/media_device_salt_service.cc | 8 ++++---- .../browser/renderer_host/media/media_devices_manager.cc | 5 +++++ content/common/features.cc | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/components/media_device_salt/media_device_salt_service.cc b/components/media_device_salt/media_device_salt_service.cc --- a/components/media_device_salt/media_device_salt_service.cc +++ b/components/media_device_salt/media_device_salt_service.cc @@ -23,11 +23,11 @@ namespace media_device_salt { BASE_FEATURE(kMediaDeviceIdPartitioning, - "MediaDeviceIdPartitioning", - base::FEATURE_ENABLED_BY_DEFAULT); + "MediaDeviceIdPartitioning", // keep + base::FEATURE_ENABLED_BY_DEFAULT); // enabled BASE_FEATURE(kMediaDeviceIdRandomSaltsPerStorageKey, - "MediaDeviceIdRandomSaltsPerStorageKey", - base::FEATURE_DISABLED_BY_DEFAULT); + "MediaDeviceIdRandomSaltsPerStorageKey", // enabled + base::FEATURE_ENABLED_BY_DEFAULT); // by default namespace { diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc --- a/content/browser/renderer_host/media/media_devices_manager.cc +++ b/content/browser/renderer_host/media/media_devices_manager.cc @@ -763,6 +763,11 @@ void MediaDevicesManager::OnDevicesEnumerated( has_permissions[i], salt_and_origin, device_info)); } } +#if !BUILDFLAG(IS_ANDROID) + int video_input_index = static_cast(MediaDeviceType::kMediaVideoInput); + if (requested_types[video_input_index] && !has_permissions[video_input_index]) + translation[video_input_index].clear(); +#endif GetAudioInputCapabilities(video_input_capabilities_requested, audio_input_capabilities_requested, diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc @@ -164,8 +164,8 @@ BASE_FEATURE(kEnsureAllowBindingsIsAlwaysForWebUI, // media-device enumeration will provide at most one device per type and the // device IDs will not be available. BASE_FEATURE(kEnumerateDevicesHideDeviceIDs, - "EnumerateDevicesHideDeviceIDs", - base::FEATURE_ENABLED_BY_DEFAULT); + "EnumerateDevicesHideDeviceIDs", // keep + base::FEATURE_ENABLED_BY_DEFAULT); // enabled // Content counterpart of ExperimentalContentSecurityPolicyFeatures in // third_party/blink/renderer/platform/runtime_enabled_features.json5. Enables -- 2.25.1