| Index: media/audio/win/audio_low_latency_input_win_unittest.cc | 
| diff --git a/media/audio/win/audio_low_latency_input_win_unittest.cc b/media/audio/win/audio_low_latency_input_win_unittest.cc | 
| index 9948188eb81ad543908147060437e048ebd1343a..f78ee7286cd15eb4ff8eb1ddf07d140377d6167d 100644 | 
| --- a/media/audio/win/audio_low_latency_input_win_unittest.cc | 
| +++ b/media/audio/win/audio_low_latency_input_win_unittest.cc | 
| @@ -16,6 +16,7 @@ | 
| #include "base/macros.h" | 
| #include "base/message_loop/message_loop.h" | 
| #include "base/path_service.h" | 
| +#include "base/run_loop.h" | 
| #include "base/test/test_timeouts.h" | 
| #include "base/win/scoped_com_initializer.h" | 
| #include "media/audio/audio_device_description.h" | 
| @@ -35,10 +36,9 @@ using ::testing::NotNull; | 
|  | 
| namespace media { | 
|  | 
| -ACTION_P3(CheckCountAndPostQuitTask, count, limit, loop) { | 
| -  if (++*count >= limit) { | 
| -    loop->PostTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); | 
| -  } | 
| +ACTION_P3(CheckCountAndPostQuitTask, count, limit, run_loop) { | 
| +  if (++*count >= limit) | 
| +    run_loop->QuitWhenIdle(); | 
| } | 
|  | 
| class MockAudioInputCallback : public AudioInputStream::AudioInputCallback { | 
| @@ -260,11 +260,11 @@ class WinAudioInputTest : public ::testing::Test { | 
| WinAudioInputTest() { | 
| audio_manager_ = | 
| AudioManager::CreateForTesting(message_loop_.task_runner()); | 
| -    message_loop_.RunUntilIdle(); | 
| +    base::RunLoop().RunUntilIdle(); | 
| } | 
| ~WinAudioInputTest() override { | 
| audio_manager_.reset(); | 
| -    message_loop_.RunUntilIdle(); | 
| +    base::RunLoop().RunUntilIdle(); | 
| } | 
|  | 
| protected: | 
| @@ -379,15 +379,18 @@ TEST_F(WinAudioInputTest, WASAPIAudioInputStreamTestPacketSizes) { | 
| uint32_t bytes_per_packet = | 
| aisw.channels() * aisw.frames_per_buffer() * (aisw.bits_per_sample() / 8); | 
|  | 
| -  // We use 10ms packets and will run the test until ten packets are received. | 
| -  // All should contain valid packets of the same size and a valid delay | 
| -  // estimate. | 
| -  EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| -      .Times(AtLeast(10)) | 
| -      .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &message_loop_)); | 
| -  ais->Start(&sink); | 
| -  message_loop_.Run(); | 
| -  ais->Stop(); | 
| +  { | 
| +    // We use 10ms packets and will run the test until ten packets are received. | 
| +    // All should contain valid packets of the same size and a valid delay | 
| +    // estimate. | 
| +    base::RunLoop run_loop; | 
| +    EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| +        .Times(AtLeast(10)) | 
| +        .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &run_loop)); | 
| +    ais->Start(&sink); | 
| +    run_loop.Run(); | 
| +    ais->Stop(); | 
| +  } | 
|  | 
| // Store current packet size (to be used in the subsequent tests). | 
| int frames_per_buffer_10ms = aisw.frames_per_buffer(); | 
| @@ -402,13 +405,16 @@ TEST_F(WinAudioInputTest, WASAPIAudioInputStreamTestPacketSizes) { | 
| bytes_per_packet = aisw.channels() * aisw.frames_per_buffer() * | 
| (aisw.bits_per_sample() / 8); | 
|  | 
| -  EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| -      .Times(AtLeast(10)) | 
| -      .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &message_loop_)); | 
| -  ais->Start(&sink); | 
| -  message_loop_.Run(); | 
| -  ais->Stop(); | 
| -  ais.Close(); | 
| +  { | 
| +    base::RunLoop run_loop; | 
| +    EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| +        .Times(AtLeast(10)) | 
| +        .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &run_loop)); | 
| +    ais->Start(&sink); | 
| +    run_loop.Run(); | 
| +    ais->Stop(); | 
| +    ais.Close(); | 
| +  } | 
|  | 
| // 5 ms packet size. | 
|  | 
| @@ -418,13 +424,16 @@ TEST_F(WinAudioInputTest, WASAPIAudioInputStreamTestPacketSizes) { | 
| bytes_per_packet = aisw.channels() * aisw.frames_per_buffer() * | 
| (aisw.bits_per_sample() / 8); | 
|  | 
| -  EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| -      .Times(AtLeast(10)) | 
| -      .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &message_loop_)); | 
| -  ais->Start(&sink); | 
| -  message_loop_.Run(); | 
| -  ais->Stop(); | 
| -  ais.Close(); | 
| +  { | 
| +    base::RunLoop run_loop; | 
| +    EXPECT_CALL(sink, OnData(ais.get(), NotNull(), _, _)) | 
| +        .Times(AtLeast(10)) | 
| +        .WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &run_loop)); | 
| +    ais->Start(&sink); | 
| +    run_loop.Run(); | 
| +    ais->Stop(); | 
| +    ais.Close(); | 
| +  } | 
| } | 
|  | 
| // Test that we can capture a stream in loopback. | 
|  |