Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(375)

Side by Side Diff: content/browser/browser_main_loop.h

Issue 22691002: Allow overlapping sync and async startup requests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Allow overlapping sync and async startup requests - fix code review Nits Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 24 matching lines...) Expand all
35 35
36 namespace content { 36 namespace content {
37 class AudioMirroringManager; 37 class AudioMirroringManager;
38 class BrowserMainParts; 38 class BrowserMainParts;
39 class BrowserOnlineStateObserver; 39 class BrowserOnlineStateObserver;
40 class BrowserShutdownImpl; 40 class BrowserShutdownImpl;
41 class BrowserThreadImpl; 41 class BrowserThreadImpl;
42 class MediaStreamManager; 42 class MediaStreamManager;
43 class ResourceDispatcherHostImpl; 43 class ResourceDispatcherHostImpl;
44 class SpeechRecognitionManagerImpl; 44 class SpeechRecognitionManagerImpl;
45 class StartupTaskRunner;
45 class SystemMessageWindowWin; 46 class SystemMessageWindowWin;
46 struct MainFunctionParams; 47 struct MainFunctionParams;
47 48
48 #if defined(OS_LINUX) 49 #if defined(OS_LINUX)
49 class DeviceMonitorLinux; 50 class DeviceMonitorLinux;
50 #elif defined(OS_MACOSX) 51 #elif defined(OS_MACOSX)
51 class DeviceMonitorMac; 52 class DeviceMonitorMac;
52 #endif 53 #endif
53 54
54 // Implements the main browser loop stages called from BrowserMainRunner. 55 // Implements the main browser loop stages called from BrowserMainRunner.
55 // See comments in browser_main_parts.h for additional info. 56 // See comments in browser_main_parts.h for additional info.
56 class CONTENT_EXPORT BrowserMainLoop { 57 class CONTENT_EXPORT BrowserMainLoop {
57 public: 58 public:
58 // Returns the current instance. This is used to get access to the getters 59 // Returns the current instance. This is used to get access to the getters
59 // that return objects which are owned by this class. 60 // that return objects which are owned by this class.
60 static BrowserMainLoop* GetInstance(); 61 static BrowserMainLoop* GetInstance();
61 62
62 explicit BrowserMainLoop(const MainFunctionParams& parameters); 63 explicit BrowserMainLoop(const MainFunctionParams& parameters);
63 virtual ~BrowserMainLoop(); 64 virtual ~BrowserMainLoop();
64 65
65 void Init(); 66 void Init();
66 67
67 void EarlyInitialization(); 68 void EarlyInitialization();
68 void InitializeToolkit(); 69 void InitializeToolkit();
69 void MainMessageLoopStart(); 70 void MainMessageLoopStart();
70 71
71 // Create the tasks we need to complete startup. 72 // Create and start running the tasks we need to complete startup. Note that
73 // this can be called more than once (currently only on Android) if we get a
74 // request for synchronous startup while the tasks created by asynchronous
75 // startup are still running.
72 void CreateStartupTasks(); 76 void CreateStartupTasks();
73 77
74 // Perform the default message loop run logic. 78 // Perform the default message loop run logic.
75 void RunMainMessageLoopParts(); 79 void RunMainMessageLoopParts();
76 80
77 // Performs the shutdown sequence, starting with PostMainMessageLoopRun 81 // Performs the shutdown sequence, starting with PostMainMessageLoopRun
78 // through stopping threads to PostDestroyThreads. 82 // through stopping threads to PostDestroyThreads.
79 void ShutdownThreadsAndCleanUp(); 83 void ShutdownThreadsAndCleanUp();
80 84
81 int GetResultCode() const { return result_code_; } 85 int GetResultCode() const { return result_code_; }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 scoped_ptr<MediaStreamManager> media_stream_manager_; 138 scoped_ptr<MediaStreamManager> media_stream_manager_;
135 // Per-process listener for online state changes. 139 // Per-process listener for online state changes.
136 scoped_ptr<BrowserOnlineStateObserver> online_state_observer_; 140 scoped_ptr<BrowserOnlineStateObserver> online_state_observer_;
137 #if defined(OS_WIN) 141 #if defined(OS_WIN)
138 scoped_ptr<SystemMessageWindowWin> system_message_window_; 142 scoped_ptr<SystemMessageWindowWin> system_message_window_;
139 #elif defined(OS_LINUX) 143 #elif defined(OS_LINUX)
140 scoped_ptr<DeviceMonitorLinux> device_monitor_linux_; 144 scoped_ptr<DeviceMonitorLinux> device_monitor_linux_;
141 #elif defined(OS_MACOSX) && !defined(OS_IOS) 145 #elif defined(OS_MACOSX) && !defined(OS_IOS)
142 scoped_ptr<DeviceMonitorMac> device_monitor_mac_; 146 scoped_ptr<DeviceMonitorMac> device_monitor_mac_;
143 #endif 147 #endif
148 // The startup task runner is created by CreateStartupTasks()
149 scoped_ptr<StartupTaskRunner> startup_task_runner_;
144 150
145 // Destroy parts_ before main_message_loop_ (required) and before other 151 // Destroy parts_ before main_message_loop_ (required) and before other
146 // classes constructed in content (but after main_thread_). 152 // classes constructed in content (but after main_thread_).
147 scoped_ptr<BrowserMainParts> parts_; 153 scoped_ptr<BrowserMainParts> parts_;
148 154
149 // Members initialized in |InitializeMainThread()| --------------------------- 155 // Members initialized in |InitializeMainThread()| ---------------------------
150 // This must get destroyed before other threads that are created in parts_. 156 // This must get destroyed before other threads that are created in parts_.
151 scoped_ptr<BrowserThreadImpl> main_thread_; 157 scoped_ptr<BrowserThreadImpl> main_thread_;
152 158
153 // Members initialized in |BrowserThreadsStarted()| -------------------------- 159 // Members initialized in |BrowserThreadsStarted()| --------------------------
(...skipping 10 matching lines...) Expand all
164 scoped_ptr<base::Thread> indexed_db_thread_; 170 scoped_ptr<base::Thread> indexed_db_thread_;
165 scoped_ptr<MemoryObserver> memory_observer_; 171 scoped_ptr<MemoryObserver> memory_observer_;
166 scoped_ptr<base::debug::TraceMemoryController> trace_memory_controller_; 172 scoped_ptr<base::debug::TraceMemoryController> trace_memory_controller_;
167 173
168 DISALLOW_COPY_AND_ASSIGN(BrowserMainLoop); 174 DISALLOW_COPY_AND_ASSIGN(BrowserMainLoop);
169 }; 175 };
170 176
171 } // namespace content 177 } // namespace content
172 178
173 #endif // CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_ 179 #endif // CONTENT_BROWSER_BROWSER_MAIN_LOOP_H_
OLDNEW
« no previous file with comments | « content/browser/android/browser_startup_controller.cc ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698