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 #ifndef CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ | 5 #ifndef CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ |
6 #define CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ | 6 #define CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "base/timer/timer.h" | 13 #include "base/timer/timer.h" |
14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
15 #include "content/browser/browser_process_sub_thread.h" | 15 #include "content/browser/browser_process_sub_thread.h" |
16 #include "content/public/browser/browser_main_runner.h" | 16 #include "content/public/browser/browser_main_runner.h" |
17 #include "media/audio/audio_manager.h" | |
18 #include "services/resource_coordinator/memory/coordinator/coordinator_impl.h" | 17 #include "services/resource_coordinator/memory/coordinator/coordinator_impl.h" |
19 | 18 |
20 #if defined(USE_AURA) | 19 #if defined(USE_AURA) |
21 namespace aura { | 20 namespace aura { |
22 class Env; | 21 class Env; |
23 } | 22 } |
24 #endif | 23 #endif |
25 | 24 |
26 namespace base { | 25 namespace base { |
27 class CommandLine; | 26 class CommandLine; |
28 class FilePath; | 27 class FilePath; |
29 class HighResolutionTimerManager; | 28 class HighResolutionTimerManager; |
30 class MemoryPressureMonitor; | 29 class MemoryPressureMonitor; |
31 class MessageLoop; | 30 class MessageLoop; |
32 class PowerMonitor; | 31 class PowerMonitor; |
33 class SystemMonitor; | 32 class SystemMonitor; |
34 namespace trace_event { | 33 namespace trace_event { |
35 class TraceEventSystemStatsMonitor; | 34 class TraceEventSystemStatsMonitor; |
36 } // namespace trace_event | 35 } // namespace trace_event |
37 } // namespace base | 36 } // namespace base |
38 | 37 |
39 namespace discardable_memory { | 38 namespace discardable_memory { |
40 class DiscardableSharedMemoryManager; | 39 class DiscardableSharedMemoryManager; |
41 } | 40 } |
42 | 41 |
43 namespace media { | 42 namespace media { |
| 43 class AudioManager; |
44 class AudioSystem; | 44 class AudioSystem; |
45 #if defined(OS_WIN) | 45 #if defined(OS_WIN) |
46 class SystemMessageWindowWin; | 46 class SystemMessageWindowWin; |
47 #elif defined(OS_LINUX) && defined(USE_UDEV) | 47 #elif defined(OS_LINUX) && defined(USE_UDEV) |
48 class DeviceMonitorLinux; | 48 class DeviceMonitorLinux; |
49 #endif | 49 #endif |
50 class UserInputMonitor; | 50 class UserInputMonitor; |
51 #if defined(OS_MACOSX) | 51 #if defined(OS_MACOSX) |
52 class DeviceMonitorMac; | 52 class DeviceMonitorMac; |
53 #endif | 53 #endif |
(...skipping 13 matching lines...) Expand all Loading... |
67 class NetworkChangeNotifier; | 67 class NetworkChangeNotifier; |
68 } // namespace net | 68 } // namespace net |
69 | 69 |
70 #if defined(USE_OZONE) | 70 #if defined(USE_OZONE) |
71 namespace gfx { | 71 namespace gfx { |
72 class ClientNativePixmapFactory; | 72 class ClientNativePixmapFactory; |
73 } // namespace gfx | 73 } // namespace gfx |
74 #endif | 74 #endif |
75 | 75 |
76 namespace content { | 76 namespace content { |
77 class AudioManagerThread; | |
78 class BrowserMainParts; | 77 class BrowserMainParts; |
79 class BrowserOnlineStateObserver; | 78 class BrowserOnlineStateObserver; |
80 class BrowserThreadImpl; | 79 class BrowserThreadImpl; |
81 class LoaderDelegateImpl; | 80 class LoaderDelegateImpl; |
82 class MediaStreamManager; | 81 class MediaStreamManager; |
83 class ResourceDispatcherHostImpl; | 82 class ResourceDispatcherHostImpl; |
84 class SaveFileManager; | 83 class SaveFileManager; |
85 class ServiceManagerContext; | 84 class ServiceManagerContext; |
86 class SpeechRecognitionManagerImpl; | 85 class SpeechRecognitionManagerImpl; |
87 class StartupTaskRunner; | 86 class StartupTaskRunner; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 184 |
186 void MainMessageLoopRun(); | 185 void MainMessageLoopRun(); |
187 | 186 |
188 void InitializeMojo(); | 187 void InitializeMojo(); |
189 base::FilePath GetStartupTraceFileName( | 188 base::FilePath GetStartupTraceFileName( |
190 const base::CommandLine& command_line) const; | 189 const base::CommandLine& command_line) const; |
191 void InitStartupTracingForDuration(const base::CommandLine& command_line); | 190 void InitStartupTracingForDuration(const base::CommandLine& command_line); |
192 void EndStartupTracing(); | 191 void EndStartupTracing(); |
193 | 192 |
194 void CreateAudioManager(); | 193 void CreateAudioManager(); |
| 194 |
195 bool UsingInProcessGpu() const; | 195 bool UsingInProcessGpu() const; |
196 | 196 |
197 void InitializeMemoryManagementComponent(); | 197 void InitializeMemoryManagementComponent(); |
198 | 198 |
199 // Quick reference for initialization order: | 199 // Quick reference for initialization order: |
200 // Constructor | 200 // Constructor |
201 // Init() | 201 // Init() |
202 // EarlyInitialization() | 202 // EarlyInitialization() |
203 // InitializeToolkit() | 203 // InitializeToolkit() |
204 // PreMainMessageLoopStart() | 204 // PreMainMessageLoopStart() |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 std::unique_ptr<BrowserProcessSubThread> cache_thread_; | 282 std::unique_ptr<BrowserProcessSubThread> cache_thread_; |
283 std::unique_ptr<BrowserProcessSubThread> io_thread_; | 283 std::unique_ptr<BrowserProcessSubThread> io_thread_; |
284 | 284 |
285 // Members initialized in |BrowserThreadsStarted()| -------------------------- | 285 // Members initialized in |BrowserThreadsStarted()| -------------------------- |
286 std::unique_ptr<base::Thread> indexed_db_thread_; | 286 std::unique_ptr<base::Thread> indexed_db_thread_; |
287 std::unique_ptr<ServiceManagerContext> service_manager_context_; | 287 std::unique_ptr<ServiceManagerContext> service_manager_context_; |
288 std::unique_ptr<mojo::edk::ScopedIPCSupport> mojo_ipc_support_; | 288 std::unique_ptr<mojo::edk::ScopedIPCSupport> mojo_ipc_support_; |
289 | 289 |
290 // |user_input_monitor_| has to outlive |audio_manager_|, so declared first. | 290 // |user_input_monitor_| has to outlive |audio_manager_|, so declared first. |
291 std::unique_ptr<media::UserInputMonitor> user_input_monitor_; | 291 std::unique_ptr<media::UserInputMonitor> user_input_monitor_; |
292 // AudioThread needs to outlive |audio_manager_|. | 292 std::unique_ptr<media::AudioManager> audio_manager_; |
293 std::unique_ptr<AudioManagerThread> audio_thread_; | |
294 media::ScopedAudioManagerPtr audio_manager_; | |
295 // Calls to |audio_system_| must not be posted to the audio thread if it | 293 // Calls to |audio_system_| must not be posted to the audio thread if it |
296 // differs from the UI one. See http://crbug.com/705455. | 294 // differs from the UI one. See http://crbug.com/705455. |
297 std::unique_ptr<media::AudioSystem> audio_system_; | 295 std::unique_ptr<media::AudioSystem> audio_system_; |
298 | 296 |
299 std::unique_ptr<midi::MidiService> midi_service_; | 297 std::unique_ptr<midi::MidiService> midi_service_; |
300 | 298 |
301 #if defined(OS_WIN) | 299 #if defined(OS_WIN) |
302 std::unique_ptr<media::SystemMessageWindowWin> system_message_window_; | 300 std::unique_ptr<media::SystemMessageWindowWin> system_message_window_; |
303 #elif defined(OS_LINUX) && defined(USE_UDEV) | 301 #elif defined(OS_LINUX) && defined(USE_UDEV) |
304 std::unique_ptr<media::DeviceMonitorLinux> device_monitor_linux_; | 302 std::unique_ptr<media::DeviceMonitorLinux> device_monitor_linux_; |
(...skipping 15 matching lines...) Expand all Loading... |
320 memory_instrumentation_coordinator_; | 318 memory_instrumentation_coordinator_; |
321 | 319 |
322 // DO NOT add members here. Add them to the right categories above. | 320 // DO NOT add members here. Add them to the right categories above. |
323 | 321 |
324 DISALLOW_COPY_AND_ASSIGN(BrowserMainLoop); | 322 DISALLOW_COPY_AND_ASSIGN(BrowserMainLoop); |
325 }; | 323 }; |
326 | 324 |
327 } // namespace content | 325 } // namespace content |
328 | 326 |
329 #endif // CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ | 327 #endif // CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ |
OLD | NEW |