Index: chrome/browser/browser_process_impl.h |
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h |
index 46d4d52d1c6e96447206e307d082bd69680be25c..2227ab00aa99eac10a3a044c3f478eacab8e4ab4 100644 |
--- a/chrome/browser/browser_process_impl.h |
+++ b/chrome/browser/browser_process_impl.h |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/prefs/pref_change_registrar.h" |
#include "chrome/browser/prefs/pref_member.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
#include "ipc/ipc_message.h" |
@@ -29,6 +30,7 @@ class BrowserOnlineStateObserver; |
class ChromeNetLog; |
class ChromeResourceDispatcherHostDelegate; |
class CommandLine; |
+class ChromeFrameFriendOfBrowserProcessImpl; // TODO(joi): Remove |
class RemoteDebuggingServer; |
class TabCloseableStateWatcher; |
@@ -44,6 +46,19 @@ class BrowserProcessImpl : public BrowserProcess, |
explicit BrowserProcessImpl(const CommandLine& command_line); |
virtual ~BrowserProcessImpl(); |
+ // Some of our startup is interleaved with thread creation, driven |
+ // by these functions. |
+ void PreStartThread(content::BrowserThread::ID identifier); |
+ void PostStartThread(content::BrowserThread::ID identifier); |
+ |
+ // Most cleanup is done by these functions, driven from |
+ // ChromeBrowserMain based on notifications from the content |
+ // framework, rather than in the destructor, so that we can |
+ // interleave cleanup with threads being stopped. |
+ void StartTearDown(); |
+ void PreStopThread(content::BrowserThread::ID identifier); |
+ void PostStopThread(content::BrowserThread::ID identifier); |
+ |
base::Thread* process_launcher_thread(); |
// BrowserProcess methods |
@@ -117,20 +132,18 @@ class BrowserProcessImpl : public BrowserProcess, |
virtual CRLSetFetcher* crl_set_fetcher() OVERRIDE; |
private: |
+ // TODO(joi): Remove. Temporary hack to get at CreateIOThreadState. |
+ friend class ChromeFrameFriendOfBrowserProcessImpl; |
+ |
+ // Must be called right before the IO thread is started. |
+ void CreateIOThreadState(); |
+ |
void CreateResourceDispatcherHost(); |
void CreateMetricsService(); |
- void CreateIOThread(); |
- static void CleanupOnIOThread(); |
- |
- void CreateFileThread(); |
- void CreateDBThread(); |
- void CreateProcessLauncherThread(); |
- void CreateCacheThread(); |
- void CreateGpuThread(); |
void CreateWatchdogThread(); |
#if defined(OS_CHROMEOS) |
- void CreateWebSocketProxyThread(); |
+ void InitializeWebSocketProxyThread(); |
#endif |
void CreateTemplateURLService(); |
void CreateProfileManager(); |
@@ -161,29 +174,11 @@ class BrowserProcessImpl : public BrowserProcess, |
bool created_metrics_service_; |
scoped_ptr<MetricsService> metrics_service_; |
- bool created_io_thread_; |
scoped_ptr<IOThread> io_thread_; |
- bool created_file_thread_; |
- scoped_ptr<base::Thread> file_thread_; |
- |
- bool created_db_thread_; |
- scoped_ptr<base::Thread> db_thread_; |
- |
- bool created_process_launcher_thread_; |
- scoped_ptr<base::Thread> process_launcher_thread_; |
- |
- bool created_cache_thread_; |
- scoped_ptr<base::Thread> cache_thread_; |
- |
bool created_watchdog_thread_; |
scoped_ptr<WatchDogThread> watchdog_thread_; |
-#if defined(OS_CHROMEOS) |
- bool created_web_socket_proxy_thread_; |
- scoped_ptr<base::Thread> web_socket_proxy_thread_; |
-#endif |
- |
bool created_profile_manager_; |
scoped_ptr<ProfileManager> profile_manager_; |
@@ -270,7 +265,7 @@ class BrowserProcessImpl : public BrowserProcess, |
scoped_refptr<MHTMLGenerationManager> mhtml_generation_manager_; |
// Monitors the state of the 'DisablePluginFinder' policy. |
- BooleanPrefMember plugin_finder_disabled_pref_; |
+ scoped_ptr<BooleanPrefMember> plugin_finder_disabled_pref_; |
#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
base::RepeatingTimer<BrowserProcessImpl> autoupdate_timer_; |