Index: content/renderer/media/user_media_client_impl_unittest.cc |
diff --git a/content/renderer/media/user_media_client_impl_unittest.cc b/content/renderer/media/user_media_client_impl_unittest.cc |
index 41f634f55f12dfe6a793f9d8ce59a85e0fae6600..77214b3bb20394160c9d52bb4523f6e6e8f8bef6 100644 |
--- a/content/renderer/media/user_media_client_impl_unittest.cc |
+++ b/content/renderer/media/user_media_client_impl_unittest.cc |
@@ -206,9 +206,16 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl { |
create_source_that_fails_ = should_fail; |
} |
+ static void SignalSourceReady( |
+ const MediaStreamSource::ConstraintsCallback& source_ready, |
+ MediaStreamSource* source) { |
+ source_ready.Run(source, MEDIA_DEVICE_OK, ""); |
+ } |
+ |
MediaStreamAudioSource* CreateAudioSource( |
const StreamDeviceInfo& device, |
- const blink::WebMediaConstraints& constraints) override { |
+ const blink::WebMediaConstraints& constraints, |
+ const MediaStreamSource::ConstraintsCallback& source_ready) override { |
MediaStreamAudioSource* source; |
if (create_source_that_fails_) { |
class FailedAtLifeAudioSource : public MediaStreamAudioSource { |
@@ -225,6 +232,15 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl { |
source = new MediaStreamAudioSource(true); |
} |
source->SetDeviceInfo(device); |
+ |
+ if (!create_source_that_fails_) { |
+ // RunUntilIdle is required for this task to complete. |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&UserMediaClientImplUnderTest::SignalSourceReady, |
+ source_ready, source)); |
+ } |
+ |
return source; |
} |
@@ -346,6 +362,7 @@ class UserMediaClientImplTest : public ::testing::Test { |
ms_dispatcher_->audio_input_request_id(), |
ms_dispatcher_->stream_label(), ms_dispatcher_->audio_input_array(), |
ms_dispatcher_->video_array()); |
+ base::RunLoop().RunUntilIdle(); |
} |
void StartMockedVideoSource() { |