Chromium Code Reviews| Index: content/browser/browser_main_loop.cc |
| diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc |
| index b53236dd828b8a7eaeffe2e4de7ee55406f8a46b..26c082e3853899b3e08b2f2c4b0db36864135c58 100644 |
| --- a/content/browser/browser_main_loop.cc |
| +++ b/content/browser/browser_main_loop.cc |
| @@ -1229,11 +1229,6 @@ int BrowserMainLoop::BrowserThreadsStarted() { |
| #endif |
| { |
| - TRACE_EVENT0("startup", "BrowserThreadsStarted::Subsystem:AudioMan"); |
| - CreateAudioManager(); |
| - } |
| - |
| - { |
| TRACE_EVENT0("startup", "BrowserThreadsStarted::Subsystem:MidiManager"); |
| midi_manager_.reset(media::midi::MidiManager::Create()); |
| } |
| @@ -1258,20 +1253,6 @@ int BrowserMainLoop::BrowserThreadsStarted() { |
| resource_dispatcher_host_.reset(new ResourceDispatcherHostImpl()); |
| } |
| - // MediaStreamManager needs the IO thread to be created. |
| - { |
| - TRACE_EVENT0("startup", |
| - "BrowserMainLoop::BrowserThreadsStarted:InitMediaStreamManager"); |
| - media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
| - } |
| - |
| - { |
| - TRACE_EVENT0("startup", |
| - "BrowserMainLoop::BrowserThreadsStarted:InitSpeechRecognition"); |
| - speech_recognition_manager_.reset(new SpeechRecognitionManagerImpl( |
| - audio_manager_.get(), media_stream_manager_.get())); |
| - } |
| - |
| { |
| TRACE_EVENT0( |
| "startup", |
| @@ -1466,9 +1447,11 @@ void BrowserMainLoop::EndStartupTracing() { |
| base::Bind(OnStoppedStartupTracing, startup_trace_file_))); |
| } |
| -void BrowserMainLoop::CreateAudioManager() { |
| +media::AudioManager* BrowserMainLoop::GetAudioManager() { |
|
tommi (sloooow) - chröme
2016/06/18 13:49:03
make sure this always runs on the same thread
qinmin
2016/06/20 23:45:29
Done.
|
| + if (audio_manager_) |
| + return audio_manager_.get(); |
| + |
| DCHECK(!audio_thread_); |
| - DCHECK(!audio_manager_); |
| bool use_hang_monitor = true; |
| audio_manager_ = GetContentClient()->browser()->CreateAudioManager( |
| @@ -1501,6 +1484,25 @@ void BrowserMainLoop::CreateAudioManager() { |
| if (use_hang_monitor) |
| media::AudioManager::StartHangMonitor(io_thread_->task_runner()); |
| + return audio_manager_.get(); |
| +} |
| + |
| +MediaStreamManager* BrowserMainLoop::GetMediaStreamManager() { |
| + if (media_stream_manager_) |
| + return media_stream_manager_.get(); |
| + |
| + GetAudioManager(); |
| + media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
|
no sievers
2016/06/18 00:17:20
nit: or just write newMediaStreamManager(GetAudioM
qinmin
2016/06/20 23:45:29
no longer needed with the new patch
|
| + return media_stream_manager_.get(); |
| +} |
| + |
| +void BrowserMainLoop::InitializeSpeechRecognitionManager() { |
| + if (speech_recognition_manager_) |
| + return; |
| + |
| + GetMediaStreamManager(); |
| + speech_recognition_manager_.reset(new SpeechRecognitionManagerImpl( |
| + audio_manager_.get(), media_stream_manager_.get())); |
|
no sievers
2016/06/18 00:17:20
nit: same here
qinmin
2016/06/20 23:45:29
no longer needed with the new patch
|
| } |
| } // namespace content |