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

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

Issue 2436113002: Introduce MediaDevicesPermissionChecker. (Closed)
Patch Set: address xhwang's comments Created 4 years, 2 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 96da87d1dd6203dfb881b655ec4a6a9343b3e030..9302e1304c31798dc0d2e4f05830ecd6e4e6b674 100644
--- a/content/browser/renderer_host/media/media_devices_dispatcher_host.h
+++ b/content/browser/renderer_host/media/media_devices_dispatcher_host.h
@@ -9,6 +9,7 @@
#include <string>
#include "base/macros.h"
+#include "content/browser/media/media_devices_permission_checker.h"
#include "content/browser/renderer_host/media/media_devices_manager.h"
#include "content/common/content_export.h"
#include "content/common/media/media_devices.mojom.h"
@@ -22,7 +23,6 @@ class Origin;
namespace content {
class MediaStreamManager;
-class MediaStreamUIProxy;
class CONTENT_EXPORT MediaDevicesDispatcherHost
: public ::mojom::MediaDevicesDispatcherHost {
@@ -30,15 +30,13 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost
MediaDevicesDispatcherHost(int render_process_id,
int routing_id,
const std::string& device_id_salt,
- MediaStreamManager* media_stream_manager,
- bool use_fake_ui);
+ MediaStreamManager* media_stream_manager);
~MediaDevicesDispatcherHost() override;
static void Create(int render_process_id,
int routing_id,
const std::string& device_id_salt,
MediaStreamManager* media_stream_manager,
- bool use_fake_ui,
::mojom::MediaDevicesDispatcherHostRequest request);
// ::mojom::MediaDevicesDispatcherHost implementation.
@@ -49,44 +47,10 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost
const url::Origin& security_origin,
const EnumerateDevicesCallback& client_callback) override;
- // Sets a MediaStreamUIProxy to be used in a single run of EnumerateDevices(),
- // provided that the MediaDevicesDispatcherHost was created with |use_fake_ui|
- // set to true. Subsequent runs of EnumerateDevices() use a new internally
- // generated fake MediaStreamUIProxy.
- // |fake_ui_proxy| is ignored if the MediaDevicesDispatcherHost was created
- // with |use_fake_ui|, in which case a real MediaStreamUIProxy will be used
- // instead.
- // This function is intended to be used for testing.
- void SetFakeUIProxyForTesting(
- std::unique_ptr<MediaStreamUIProxy> fake_ui_proxy);
+ void SetPermissionChecker(
+ const MediaDevicesPermissionChecker& permission_checker);
private:
- // Internal type that represents a callback that receives a
- // MediaDevicesManager::BoolDeviceTypes containing the permissions for each
- // device type.
- using AccessCheckedCallback =
- base::Callback<void(const MediaDevicesManager::BoolDeviceTypes&)>;
-
- // Currently, the same permission (MEDIA_DEVICE_AUDIO_CAPTURE) is used for
- // both audio input and output.
- // TODO(guidou): use specific permission for audio output when it becomes
- // available. See http://crbug.com/556542.
- void CheckAccess(bool check_audio,
- bool check_video_input,
- const url::Origin& security_origin,
- const AccessCheckedCallback& callback);
-
- void AudioAccessChecked(std::unique_ptr<MediaStreamUIProxy> ui_proxy,
- bool check_video_permission,
- const url::Origin& security_origin,
- const AccessCheckedCallback& callback,
- bool has_audio_permission);
-
- void VideoAccessChecked(std::unique_ptr<MediaStreamUIProxy> ui_proxy,
- bool has_audio_permission,
- const AccessCheckedCallback& callback,
- bool has_video_permission);
-
void DoEnumerateDevices(
const MediaDevicesManager::BoolDeviceTypes& requested_types,
const url::Origin& security_origin,
@@ -100,15 +64,12 @@ class CONTENT_EXPORT MediaDevicesDispatcherHost
const MediaDevicesManager::BoolDeviceTypes& has_permissions,
const MediaDeviceEnumeration& enumeration);
- std::unique_ptr<MediaStreamUIProxy> GetUIProxy();
-
int render_process_id_;
int routing_id_;
std::string device_id_salt_;
std::string group_id_salt_;
MediaStreamManager* media_stream_manager_;
- bool use_fake_ui_;
- std::unique_ptr<MediaStreamUIProxy> fake_ui_proxy_;
+ MediaDevicesPermissionChecker permission_checker_;
base::WeakPtrFactory<MediaDevicesDispatcherHost> weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698