OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // MediaStreamManager is used to open/enumerate media capture devices (video | 5 // MediaStreamManager is used to open/enumerate media capture devices (video |
6 // supported now). Call flow: | 6 // supported now). Call flow: |
7 // 1. GenerateStream is called when a render process wants to use a capture | 7 // 1. GenerateStream is called when a render process wants to use a capture |
8 // device. | 8 // device. |
9 // 2. MediaStreamManager will ask MediaStreamUIController for permission to | 9 // 2. MediaStreamManager will ask MediaStreamUIController for permission to |
10 // use devices and for which device to use. | 10 // use devices and for which device to use. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 #include "content/public/browser/media_request_state.h" | 43 #include "content/public/browser/media_request_state.h" |
44 #include "content/public/browser/resource_context.h" | 44 #include "content/public/browser/resource_context.h" |
45 | 45 |
46 namespace media { | 46 namespace media { |
47 class AudioManager; | 47 class AudioManager; |
48 } | 48 } |
49 | 49 |
50 namespace content { | 50 namespace content { |
51 | 51 |
52 class AudioInputDeviceManager; | 52 class AudioInputDeviceManager; |
53 class BrowserContext; | |
53 class FakeMediaStreamUIProxy; | 54 class FakeMediaStreamUIProxy; |
54 class MediaStreamDeviceSettings; | 55 class MediaStreamDeviceSettings; |
55 class MediaStreamRequester; | 56 class MediaStreamRequester; |
56 class MediaStreamUIProxy; | 57 class MediaStreamUIProxy; |
57 class VideoCaptureManager; | 58 class VideoCaptureManager; |
58 | 59 |
59 // MediaStreamManager is used to generate and close new media devices, not to | 60 // MediaStreamManager is used to generate and close new media devices, not to |
60 // start the media flow. The classes requesting new media streams are answered | 61 // start the media flow. The classes requesting new media streams are answered |
61 // using MediaStreamRequester. | 62 // using MediaStreamRequester. |
62 class CONTENT_EXPORT MediaStreamManager | 63 class CONTENT_EXPORT MediaStreamManager |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
122 int render_frame_id, | 123 int render_frame_id, |
123 const std::string& device_id); | 124 const std::string& device_id); |
124 | 125 |
125 // Gets a list of devices of |type|, which must be MEDIA_DEVICE_AUDIO_CAPTURE | 126 // Gets a list of devices of |type|, which must be MEDIA_DEVICE_AUDIO_CAPTURE |
126 // or MEDIA_DEVICE_VIDEO_CAPTURE. | 127 // or MEDIA_DEVICE_VIDEO_CAPTURE. |
127 // The request is identified using the string returned to the caller. | 128 // The request is identified using the string returned to the caller. |
128 // When the |requester| is NULL, MediaStreamManager will enumerate both audio | 129 // When the |requester| is NULL, MediaStreamManager will enumerate both audio |
129 // and video devices and also start monitoring device changes, such as | 130 // and video devices and also start monitoring device changes, such as |
130 // plug/unplug. The new device lists will be delivered via media observer to | 131 // plug/unplug. The new device lists will be delivered via media observer to |
131 // MediaCaptureDevicesDispatcher. | 132 // MediaCaptureDevicesDispatcher. |
132 // If |have_permission| is false, we remove the device label from the result. | |
133 virtual std::string EnumerateDevices(MediaStreamRequester* requester, | 133 virtual std::string EnumerateDevices(MediaStreamRequester* requester, |
134 int render_process_id, | 134 int render_process_id, |
135 int render_frame_id, | 135 int render_frame_id, |
136 const ResourceContext::SaltCallback& sc, | 136 const ResourceContext::SaltCallback& sc, |
137 int page_request_id, | 137 int page_request_id, |
138 MediaStreamType type, | 138 MediaStreamType type, |
139 const GURL& security_origin, | 139 const GURL& security_origin); |
140 bool have_permission); | |
141 | 140 |
142 // Open a device identified by |device_id|. |type| must be either | 141 // Open a device identified by |device_id|. |type| must be either |
143 // MEDIA_DEVICE_AUDIO_CAPTURE or MEDIA_DEVICE_VIDEO_CAPTURE. | 142 // MEDIA_DEVICE_AUDIO_CAPTURE or MEDIA_DEVICE_VIDEO_CAPTURE. |
144 // The request is identified using string returned to the caller. | 143 // The request is identified using string returned to the caller. |
145 void OpenDevice(MediaStreamRequester* requester, | 144 void OpenDevice(MediaStreamRequester* requester, |
146 int render_process_id, | 145 int render_process_id, |
147 int render_frame_id, | 146 int render_frame_id, |
148 const ResourceContext::SaltCallback& sc, | 147 const ResourceContext::SaltCallback& sc, |
149 int page_request_id, | 148 int page_request_id, |
150 const std::string& device_id, | 149 const std::string& device_id, |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
316 DeviceRequest* request, | 315 DeviceRequest* request, |
317 content::MediaStreamRequestResult result); | 316 content::MediaStreamRequestResult result); |
318 void FinalizeOpenDevice(const std::string& label, | 317 void FinalizeOpenDevice(const std::string& label, |
319 DeviceRequest* request); | 318 DeviceRequest* request); |
320 void FinalizeMediaAccessRequest(const std::string& label, | 319 void FinalizeMediaAccessRequest(const std::string& label, |
321 DeviceRequest* request, | 320 DeviceRequest* request, |
322 const MediaStreamDevices& devices); | 321 const MediaStreamDevices& devices); |
323 void FinalizeEnumerateDevices(const std::string& label, | 322 void FinalizeEnumerateDevices(const std::string& label, |
324 DeviceRequest* request); | 323 DeviceRequest* request); |
325 | 324 |
325 // Checks for media access. Overridden by unit tests. | |
perkj_chrome
2014/08/28 15:09:40
media device permissions?
Henrik Grunell
2014/08/29 07:59:10
We have e.g. HandleAccessRequestResponse and Final
| |
326 virtual bool CheckMediaAccessOnUI(int render_process_id, | |
327 const GURL& security_origin, | |
328 MediaStreamType type); | |
329 void HandleCheckMediaAccessResponse(const std::string& label, | |
330 bool have_access); | |
331 | |
326 // This method is called when an audio or video device is plugged in or | 332 // This method is called when an audio or video device is plugged in or |
327 // removed. It make sure all MediaStreams that use a removed device is | 333 // removed. It make sure all MediaStreams that use a removed device is |
328 // stopped and that the render process is notified. |old_devices| is the list | 334 // stopped and that the render process is notified. |old_devices| is the list |
329 // of previously available devices. |new_devices| is the new | 335 // of previously available devices. |new_devices| is the new |
330 // list of currently available devices. | 336 // list of currently available devices. |
331 void StopRemovedDevices(const StreamDeviceInfoArray& old_devices, | 337 void StopRemovedDevices(const StreamDeviceInfoArray& old_devices, |
332 const StreamDeviceInfoArray& new_devices); | 338 const StreamDeviceInfoArray& new_devices); |
333 // Helper method used by StopRemovedDevices to stop the use of a certain | 339 // Helper method used by StopRemovedDevices to stop the use of a certain |
334 // device. | 340 // device. |
335 void StopRemovedDevice(const MediaStreamDevice& device); | 341 void StopRemovedDevice(const MediaStreamDevice& device); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
393 | 399 |
394 bool use_fake_ui_; | 400 bool use_fake_ui_; |
395 scoped_ptr<FakeMediaStreamUIProxy> fake_ui_; | 401 scoped_ptr<FakeMediaStreamUIProxy> fake_ui_; |
396 | 402 |
397 DISALLOW_COPY_AND_ASSIGN(MediaStreamManager); | 403 DISALLOW_COPY_AND_ASSIGN(MediaStreamManager); |
398 }; | 404 }; |
399 | 405 |
400 } // namespace content | 406 } // namespace content |
401 | 407 |
402 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_ | 408 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_ |
OLD | NEW |