Index: content/browser/renderer_host/media/media_devices_dispatcher_host.h |
diff --git a/content/browser/renderer_host/media/media_devices_dispatcher_host.h b/content/browser/renderer_host/media/media_devices_dispatcher_host.h |
index fd06fed511d7f8670c86e7007241cbc61d31e352..f37e9906ad4be45e84a954e035cc15672510b9b6 100644 |
--- a/content/browser/renderer_host/media/media_devices_dispatcher_host.h |
+++ b/content/browser/renderer_host/media/media_devices_dispatcher_host.h |
@@ -15,6 +15,7 @@ |
#include "content/common/content_export.h" |
#include "content/common/media/media_devices.mojom.h" |
#include "media/capture/video/video_capture_device_descriptor.h" |
+#include "url/origin.h" |
using ::mojom::MediaDeviceType; |
@@ -22,10 +23,6 @@ namespace service_manager { |
struct BindSourceInfo; |
} |
-namespace url { |
-class Origin; |
-} |
- |
namespace content { |
class MediaStreamManager; |
@@ -51,15 +48,11 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost |
void EnumerateDevices(bool request_audio_input, |
bool request_video_input, |
bool request_audio_output, |
- const url::Origin& security_origin, |
EnumerateDevicesCallback client_callback) override; |
void GetVideoInputCapabilities( |
- const url::Origin& security_origin, |
GetVideoInputCapabilitiesCallback client_callback) override; |
- void SubscribeDeviceChangeNotifications( |
- MediaDeviceType type, |
- uint32_t subscription_id, |
- const url::Origin& security_origin) override; |
+ void SubscribeDeviceChangeNotifications(MediaDeviceType type, |
+ uint32_t subscription_id) override; |
void UnsubscribeDeviceChangeNotifications(MediaDeviceType type, |
uint32_t subscription_id) override; |
@@ -73,39 +66,48 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost |
void SetDeviceChangeListenerForTesting( |
::mojom::MediaDevicesListenerPtr listener); |
+ void SetSecurityOriginForTesting(const url::Origin& origin); |
+ |
private: |
+ void CheckPermissionsForEnumerateDevices( |
+ const MediaDevicesManager::BoolDeviceTypes& requested_types, |
+ EnumerateDevicesCallback client_callback, |
+ const url::Origin& security_origin); |
+ |
void DoEnumerateDevices( |
const MediaDevicesManager::BoolDeviceTypes& requested_types, |
- const url::Origin& security_origin, |
EnumerateDevicesCallback client_callback, |
- const MediaDevicesManager::BoolDeviceTypes& permissions); |
+ const url::Origin& security_origin, |
+ const MediaDevicesManager::BoolDeviceTypes& has_permissions); |
void DevicesEnumerated( |
const MediaDevicesManager::BoolDeviceTypes& requested_types, |
- const url::Origin& security_origin, |
EnumerateDevicesCallback client_callback, |
+ const url::Origin& security_origin, |
const MediaDevicesManager::BoolDeviceTypes& has_permissions, |
const MediaDeviceEnumeration& enumeration); |
+ void GetDefaultVideoInputDeviceID( |
+ GetVideoInputCapabilitiesCallback client_callback, |
+ const url::Origin& security_origin); |
+ |
void GotDefaultVideoInputDeviceID( |
- const url::Origin& security_origin, |
GetVideoInputCapabilitiesCallback client_callback, |
+ const url::Origin& security_origin, |
const std::string& default_device_id); |
void FinalizeGetVideoInputCapabilities( |
- const url::Origin& security_origin, |
GetVideoInputCapabilitiesCallback client_callback, |
+ const url::Origin& security_origin, |
const std::string& default_device_id, |
const media::VideoCaptureDeviceDescriptors& device_descriptors); |
// Returns the currently supported video formats for the given |device_id|. |
media::VideoCaptureFormats GetVideoInputFormats(const std::string& device_id); |
- struct SubscriptionInfo; |
- void NotifyDeviceChangeOnUIThread( |
- const std::vector<SubscriptionInfo>& subscriptions, |
- MediaDeviceType type, |
- const MediaDeviceInfoArray& device_infos); |
+ void NotifyDeviceChangeOnUIThread(const std::vector<uint32_t>& subscriptions, |
+ MediaDeviceType type, |
+ const MediaDeviceInfoArray& device_infos); |
// The following const fields can be accessed on any thread. |
const int render_process_id_; |
@@ -116,11 +118,11 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost |
// The following fields can only be accessed on the IO thread. |
MediaStreamManager* media_stream_manager_; |
std::unique_ptr<MediaDevicesPermissionChecker> permission_checker_; |
- std::vector<SubscriptionInfo> |
- device_change_subscriptions_[NUM_MEDIA_DEVICE_TYPES]; |
+ std::vector<uint32_t> device_change_subscriptions_[NUM_MEDIA_DEVICE_TYPES]; |
// This field can only be accessed on the UI thread. |
::mojom::MediaDevicesListenerPtr device_change_listener_; |
+ url::Origin security_origin_for_testing_; |
base::WeakPtrFactory<MediaDevicesDispatcherHost> weak_factory_; |