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 |