| Index: chrome/browser/media/media_capture_devices_dispatcher.cc
|
| diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| index 690bd1b143f9fcb136cfd170a09e933ce3f69b91..fb38bc29b50aa763f57b69aec3bbed21b6513d9b 100644
|
| --- a/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| +++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| @@ -26,7 +26,7 @@
|
| #include "components/user_prefs/pref_registry_syncable.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/desktop_media_id.h"
|
| -#include "content/public/browser/media_devices_monitor.h"
|
| +#include "content/public/browser/media_capture_devices.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/notification_source.h"
|
| #include "content/public/browser/notification_types.h"
|
| @@ -43,6 +43,7 @@
|
| #endif // defined(OS_CHROMEOS)
|
|
|
| using content::BrowserThread;
|
| +using content::MediaCaptureDevices;
|
| using content::MediaStreamDevices;
|
|
|
| namespace {
|
| @@ -194,9 +195,7 @@ MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() {
|
| }
|
|
|
| MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
|
| - : devices_enumerated_(false),
|
| - is_device_enumeration_disabled_(false),
|
| - media_stream_capture_indicator_(new MediaStreamCaptureIndicator()),
|
| + : media_stream_capture_indicator_(new MediaStreamCaptureIndicator()),
|
| audio_stream_indicator_(new AudioStreamIndicator()) {
|
| // MediaCaptureDevicesDispatcher is a singleton. It should be created on
|
| // UI thread. Otherwise, it will not receive
|
| @@ -233,26 +232,6 @@ void MediaCaptureDevicesDispatcher::RemoveObserver(Observer* observer) {
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| -const MediaStreamDevices&
|
| -MediaCaptureDevicesDispatcher::GetAudioCaptureDevices() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - if (!is_device_enumeration_disabled_ && !devices_enumerated_) {
|
| - content::EnsureMonitorCaptureDevices();
|
| - devices_enumerated_ = true;
|
| - }
|
| - return audio_devices_;
|
| -}
|
| -
|
| -const MediaStreamDevices&
|
| -MediaCaptureDevicesDispatcher::GetVideoCaptureDevices() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - if (!is_device_enumeration_disabled_ && !devices_enumerated_) {
|
| - content::EnsureMonitorCaptureDevices();
|
| - devices_enumerated_ = true;
|
| - }
|
| - return video_devices_;
|
| -}
|
| -
|
| void MediaCaptureDevicesDispatcher::Observe(
|
| int type,
|
| const content::NotificationSource& source,
|
| @@ -622,7 +601,8 @@ const content::MediaStreamDevice*
|
| MediaCaptureDevicesDispatcher::GetRequestedAudioDevice(
|
| const std::string& requested_audio_device_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - const content::MediaStreamDevices& audio_devices = GetAudioCaptureDevices();
|
| + const content::MediaStreamDevices& audio_devices =
|
| + MediaCaptureDevices::GetInstance()->GetAudioCaptureDevices();
|
| const content::MediaStreamDevice* const device =
|
| FindDeviceWithId(audio_devices, requested_audio_device_id);
|
| return device;
|
| @@ -631,7 +611,8 @@ MediaCaptureDevicesDispatcher::GetRequestedAudioDevice(
|
| const content::MediaStreamDevice*
|
| MediaCaptureDevicesDispatcher::GetFirstAvailableAudioDevice() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - const content::MediaStreamDevices& audio_devices = GetAudioCaptureDevices();
|
| + const content::MediaStreamDevices& audio_devices =
|
| + MediaCaptureDevices::GetInstance()->GetAudioCaptureDevices();
|
| if (audio_devices.empty())
|
| return NULL;
|
| return &(*audio_devices.begin());
|
| @@ -641,7 +622,8 @@ const content::MediaStreamDevice*
|
| MediaCaptureDevicesDispatcher::GetRequestedVideoDevice(
|
| const std::string& requested_video_device_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - const content::MediaStreamDevices& video_devices = GetVideoCaptureDevices();
|
| + const content::MediaStreamDevices& video_devices =
|
| + MediaCaptureDevices::GetInstance()->GetVideoCaptureDevices();
|
| const content::MediaStreamDevice* const device =
|
| FindDeviceWithId(video_devices, requested_video_device_id);
|
| return device;
|
| @@ -650,16 +632,13 @@ MediaCaptureDevicesDispatcher::GetRequestedVideoDevice(
|
| const content::MediaStreamDevice*
|
| MediaCaptureDevicesDispatcher::GetFirstAvailableVideoDevice() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - const content::MediaStreamDevices& video_devices = GetVideoCaptureDevices();
|
| + const content::MediaStreamDevices& video_devices =
|
| + MediaCaptureDevices::GetInstance()->GetVideoCaptureDevices();
|
| if (video_devices.empty())
|
| return NULL;
|
| return &(*video_devices.begin());
|
| }
|
|
|
| -void MediaCaptureDevicesDispatcher::DisableDeviceEnumerationForTesting() {
|
| - is_device_enumeration_disabled_ = true;
|
| -}
|
| -
|
| scoped_refptr<MediaStreamCaptureIndicator>
|
| MediaCaptureDevicesDispatcher::GetMediaStreamCaptureIndicator() {
|
| return media_stream_capture_indicator_;
|
| @@ -677,24 +656,6 @@ MediaCaptureDevicesDispatcher::GetDesktopStreamsRegistry() {
|
| return desktop_streams_registry_.get();
|
| }
|
|
|
| -void MediaCaptureDevicesDispatcher::OnAudioCaptureDevicesChanged(
|
| - const content::MediaStreamDevices& devices) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread,
|
| - base::Unretained(this), devices));
|
| -}
|
| -
|
| -void MediaCaptureDevicesDispatcher::OnVideoCaptureDevicesChanged(
|
| - const content::MediaStreamDevices& devices) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread,
|
| - base::Unretained(this), devices));
|
| -}
|
| -
|
| void MediaCaptureDevicesDispatcher::OnMediaRequestStateChanged(
|
| int render_process_id,
|
| int render_view_id,
|
| @@ -730,24 +691,6 @@ void MediaCaptureDevicesDispatcher::OnCreatingAudioStream(
|
| base::Unretained(this), render_process_id, render_frame_id));
|
| }
|
|
|
| -void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread(
|
| - const content::MediaStreamDevices& devices) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - devices_enumerated_ = true;
|
| - audio_devices_ = devices;
|
| - FOR_EACH_OBSERVER(Observer, observers_,
|
| - OnUpdateAudioDevices(audio_devices_));
|
| -}
|
| -
|
| -void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread(
|
| - const content::MediaStreamDevices& devices) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - devices_enumerated_ = true;
|
| - video_devices_ = devices;
|
| - FOR_EACH_OBSERVER(Observer, observers_,
|
| - OnUpdateVideoDevices(video_devices_));
|
| -}
|
| -
|
| void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread(
|
| int render_process_id,
|
| int render_view_id,
|
|
|