OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/browser_main_loop.h" | 5 #include "content/browser/browser_main_loop.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/hi_res_timer_manager.h" | 10 #include "base/hi_res_timer_manager.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 size_t private_bytes; | 269 size_t private_bytes; |
270 process_metrics->GetMemoryBytes(&private_bytes, NULL); | 270 process_metrics->GetMemoryBytes(&private_bytes, NULL); |
271 HISTOGRAM_MEMORY_KB("Memory.BrowserUsed", private_bytes >> 10); | 271 HISTOGRAM_MEMORY_KB("Memory.BrowserUsed", private_bytes >> 10); |
272 #endif | 272 #endif |
273 } | 273 } |
274 private: | 274 private: |
275 DISALLOW_COPY_AND_ASSIGN(MemoryObserver); | 275 DISALLOW_COPY_AND_ASSIGN(MemoryObserver); |
276 }; | 276 }; |
277 | 277 |
278 | 278 |
279 // static | 279 // BrowserMainLoop construction / destruction ============================= |
280 media::AudioManager* BrowserMainLoop::GetAudioManager() { | 280 |
281 return g_current_browser_main_loop->audio_manager_.get(); | 281 BrowserMainLoop* BrowserMainLoop::GetInstance() { |
| 282 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 283 return g_current_browser_main_loop; |
282 } | 284 } |
283 | 285 |
284 // static | |
285 AudioMirroringManager* BrowserMainLoop::GetAudioMirroringManager() { | |
286 return g_current_browser_main_loop->audio_mirroring_manager_.get(); | |
287 } | |
288 | |
289 // static | |
290 MediaStreamManager* BrowserMainLoop::GetMediaStreamManager() { | |
291 return g_current_browser_main_loop->media_stream_manager_.get(); | |
292 } | |
293 // BrowserMainLoop construction / destruction ============================= | |
294 | |
295 BrowserMainLoop::BrowserMainLoop(const MainFunctionParams& parameters) | 286 BrowserMainLoop::BrowserMainLoop(const MainFunctionParams& parameters) |
296 : parameters_(parameters), | 287 : parameters_(parameters), |
297 parsed_command_line_(parameters.command_line), | 288 parsed_command_line_(parameters.command_line), |
298 result_code_(RESULT_CODE_NORMAL_EXIT) { | 289 result_code_(RESULT_CODE_NORMAL_EXIT) { |
299 DCHECK(!g_current_browser_main_loop); | 290 DCHECK(!g_current_browser_main_loop); |
300 g_current_browser_main_loop = this; | 291 g_current_browser_main_loop = this; |
301 } | 292 } |
302 | 293 |
303 BrowserMainLoop::~BrowserMainLoop() { | 294 BrowserMainLoop::~BrowserMainLoop() { |
304 DCHECK_EQ(this, g_current_browser_main_loop); | 295 DCHECK_EQ(this, g_current_browser_main_loop); |
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); | 812 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
822 } | 813 } |
823 | 814 |
824 // Initialize the GpuDataManager before we set up the MessageLoops because | 815 // Initialize the GpuDataManager before we set up the MessageLoops because |
825 // otherwise we'll trigger the assertion about doing IO on the UI thread. | 816 // otherwise we'll trigger the assertion about doing IO on the UI thread. |
826 GpuDataManagerImpl::GetInstance()->Initialize(); | 817 GpuDataManagerImpl::GetInstance()->Initialize(); |
827 | 818 |
828 { | 819 { |
829 TRACE_EVENT0("startup", | 820 TRACE_EVENT0("startup", |
830 "BrowserMainLoop::BrowserThreadsStarted:InitSpeechRecognition"); | 821 "BrowserMainLoop::BrowserThreadsStarted:InitSpeechRecognition"); |
831 speech_recognition_manager_.reset(new SpeechRecognitionManagerImpl()); | 822 speech_recognition_manager_.reset(new SpeechRecognitionManagerImpl( |
| 823 audio_manager_.get(), media_stream_manager_.get())); |
832 } | 824 } |
833 | 825 |
834 // Alert the clipboard class to which threads are allowed to access the | 826 // Alert the clipboard class to which threads are allowed to access the |
835 // clipboard: | 827 // clipboard: |
836 std::vector<base::PlatformThreadId> allowed_clipboard_threads; | 828 std::vector<base::PlatformThreadId> allowed_clipboard_threads; |
837 // The current thread is the UI thread. | 829 // The current thread is the UI thread. |
838 allowed_clipboard_threads.push_back(base::PlatformThread::CurrentId()); | 830 allowed_clipboard_threads.push_back(base::PlatformThread::CurrentId()); |
839 #if defined(OS_WIN) | 831 #if defined(OS_WIN) |
840 // On Windows, clipboards are also used on the File or IO threads. | 832 // On Windows, clipboards are also used on the File or IO threads. |
841 allowed_clipboard_threads.push_back(file_thread_->thread_id()); | 833 allowed_clipboard_threads.push_back(file_thread_->thread_id()); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 if (parameters_.ui_task) | 909 if (parameters_.ui_task) |
918 base::MessageLoopForUI::current()->PostTask(FROM_HERE, | 910 base::MessageLoopForUI::current()->PostTask(FROM_HERE, |
919 *parameters_.ui_task); | 911 *parameters_.ui_task); |
920 | 912 |
921 base::RunLoop run_loop; | 913 base::RunLoop run_loop; |
922 run_loop.Run(); | 914 run_loop.Run(); |
923 #endif | 915 #endif |
924 } | 916 } |
925 | 917 |
926 } // namespace content | 918 } // namespace content |
OLD | NEW |