| Index: content/browser/renderer_host/media/media_stream_manager.cc
|
| diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
|
| index 4080cbef29d0bfed1cf9f9e48a593639d4e47bb2..5fcbea0af2aa5322d7b65a6392e679514c5fbdd8 100644
|
| --- a/content/browser/renderer_host/media/media_stream_manager.cc
|
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc
|
| @@ -45,6 +45,10 @@
|
| #include "base/win/scoped_com_initializer.h"
|
| #endif
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +#include "chromeos/audio/cras_audio_handler.h"
|
| +#endif
|
| +
|
| namespace content {
|
|
|
| // Forward declaration of DeviceMonitorMac and its only useable method.
|
| @@ -358,12 +362,18 @@ MediaStreamManager::EnumerationCache::~EnumerationCache() {
|
| MediaStreamManager::MediaStreamManager()
|
| : audio_manager_(NULL),
|
| monitoring_started_(false),
|
| +#if defined(OS_CHROMEOS)
|
| + has_checked_keyboard_mic_(false),
|
| +#endif
|
| io_loop_(NULL),
|
| use_fake_ui_(false) {}
|
|
|
| MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager)
|
| : audio_manager_(audio_manager),
|
| monitoring_started_(false),
|
| +#if defined(OS_CHROMEOS)
|
| + has_checked_keyboard_mic_(false),
|
| +#endif
|
| io_loop_(NULL),
|
| use_fake_ui_(false) {
|
| DCHECK(audio_manager_);
|
| @@ -1072,6 +1082,16 @@ void MediaStreamManager::StartEnumeration(DeviceRequest* request) {
|
| // Start monitoring the devices when doing the first enumeration.
|
| StartMonitoring();
|
|
|
| +#if defined(OS_CHROMEOS)
|
| + if (!has_checked_keyboard_mic_) {
|
| + has_checked_keyboard_mic_ = true;
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&MediaStreamManager::CheckKeyboardMicOnUIThread,
|
| + base::Unretained(this)));
|
| + }
|
| +#endif
|
| +
|
| // Start enumeration for devices of all requested device types.
|
| const MediaStreamType streams[] = { request->audio_type(),
|
| request->video_type() };
|
| @@ -2077,4 +2097,13 @@ void MediaStreamManager::OnMediaStreamUIWindowId(MediaStreamType video_type,
|
| }
|
| }
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +void MediaStreamManager::CheckKeyboardMicOnUIThread() {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + if (chromeos::CrasAudioHandler::Get()->HasKeyboardMic()) {
|
| + audio_manager_->SetHasKeyboardMic();
|
| + }
|
| +}
|
| +#endif
|
| +
|
| } // namespace content
|
|
|