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 c07c4f2b27635518b3565359b625c965500dd14a..19b91c23bc8201488945f70a8cae4693862cf520 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -1082,16 +1082,6 @@ 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() }; |
@@ -1234,6 +1224,10 @@ void MediaStreamManager::SetupRequest(const std::string& label) { |
return; |
} |
+#if defined(OS_CHROMEOS) |
+ EnsureKeyboardMicChecked(); |
+#endif |
+ |
if (!is_web_contents_capture && !is_screen_capture) { |
if (EnumerationRequired(&audio_enumeration_cache_, audio_type) || |
EnumerationRequired(&video_enumeration_cache_, video_type)) { |
@@ -2098,6 +2092,17 @@ void MediaStreamManager::OnMediaStreamUIWindowId(MediaStreamType video_type, |
} |
#if defined(OS_CHROMEOS) |
+void MediaStreamManager::EnsureKeyboardMicChecked() { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ if (!has_checked_keyboard_mic_) { |
+ has_checked_keyboard_mic_ = true; |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&MediaStreamManager::CheckKeyboardMicOnUIThread, |
+ base::Unretained(this))); |
+ } |
+} |
+ |
void MediaStreamManager::CheckKeyboardMicOnUIThread() { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |