Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: content/browser/renderer_host/media/media_devices_dispatcher_host.h

Issue 2872913003: Do not pass the origin to MediaDevicesDispatcherHost. (Closed)
Patch Set: Add tests with unique origin Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698