diff options
author | beng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-01 20:24:01 +0000 |
---|---|---|
committer | beng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-01 20:24:01 +0000 |
commit | b112a4cc460212188d353b995a055f6e14029ba3 (patch) | |
tree | d4d9d51c6f59535b3b0b993db128c4ca2558858a /chrome/browser | |
parent | 721e54858f0fb90a19ca3ea697b6f37ba127850d (diff) | |
download | chromium_src-b112a4cc460212188d353b995a055f6e14029ba3.zip chromium_src-b112a4cc460212188d353b995a055f6e14029ba3.tar.gz chromium_src-b112a4cc460212188d353b995a055f6e14029ba3.tar.bz2 |
Will the real BrowserProcessImpl please stand up?
Review URL: http://codereview.chromium.org/19743
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9030 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/browser.scons | 1 | ||||
-rw-r--r-- | chrome/browser/browser_main.cc | 4 | ||||
-rw-r--r-- | chrome/browser/browser_prefs.cc | 4 | ||||
-rw-r--r-- | chrome/browser/browser_process_impl.cc | 46 | ||||
-rw-r--r-- | chrome/browser/browser_process_impl.h | 7 | ||||
-rw-r--r-- | chrome/browser/first_run.h | 4 | ||||
-rw-r--r-- | chrome/browser/resource_message_filter.h | 5 |
7 files changed, 51 insertions, 20 deletions
diff --git a/chrome/browser/browser.scons b/chrome/browser/browser.scons index 630259c..3af4093 100644 --- a/chrome/browser/browser.scons +++ b/chrome/browser/browser.scons @@ -691,7 +691,6 @@ if not env.Bit('windows'): 'browser_about_handler.cc', 'browser_accessibility.cc', 'browser_accessibility_manager.cc', - 'browser_process_impl.cc', 'browser_shutdown.cc', 'browser_url_handler.cc', 'browsing_data_remover.cc', diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index 0898d44..84f1482 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -24,6 +24,8 @@ #include "chrome/browser/browser_list.h" #include "chrome/browser/browser_prefs.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/browser_process_impl.h" +#include "chrome/browser/first_run.h" #include "chrome/browser/plugin_service.h" #include "chrome/browser/profile_manager.h" #include "chrome/browser/shell_integration.h" @@ -59,12 +61,10 @@ #include "base/win_util.h" #include "chrome/browser/automation/automation_provider.h" #include "chrome/browser/browser.h" -#include "chrome/browser/browser_process_impl.h" #include "chrome/browser/browser_shutdown.h" #include "chrome/browser/browser_trial.h" #include "chrome/browser/dom_ui/chrome_url_data_manager.h" #include "chrome/browser/extensions/extension_protocols.h" -#include "chrome/browser/first_run.h" #include "chrome/browser/jankometer.h" #include "chrome/browser/message_window.h" #include "chrome/browser/metrics/metrics_service.h" diff --git a/chrome/browser/browser_prefs.cc b/chrome/browser/browser_prefs.cc index ca50616..da18c3f 100644 --- a/chrome/browser/browser_prefs.cc +++ b/chrome/browser/browser_prefs.cc @@ -6,6 +6,7 @@ #include "chrome/browser/browser.h" #include "chrome/browser/session_startup_pref.h" +#include "chrome/browser/google_url_tracker.h" #if defined(OS_WIN) #include "chrome/browser/browser_shutdown.h" @@ -13,7 +14,6 @@ #include "chrome/browser/net/dns_global.h" #include "chrome/browser/download/download_manager.h" #include "chrome/browser/external_protocol_handler.h" -#include "chrome/browser/google_url_tracker.h" #include "chrome/browser/metrics/metrics_service.h" #include "chrome/browser/password_manager/password_manager.h" #include "chrome/browser/renderer_host/browser_render_process_host.h" @@ -35,6 +35,7 @@ namespace browser { void RegisterAllPrefs(PrefService* user_prefs, PrefService* local_state) { // Prefs in Local State + GoogleURLTracker::RegisterPrefs(local_state); #if defined(OS_WIN) BookmarkManagerView::RegisterPrefs(local_state); Browser::RegisterPrefs(local_state); @@ -42,7 +43,6 @@ void RegisterAllPrefs(PrefService* user_prefs, PrefService* local_state) { browser_shutdown::RegisterPrefs(local_state); CacheManagerHost::RegisterPrefs(local_state); chrome_browser_net::RegisterPrefs(local_state); - GoogleURLTracker::RegisterPrefs(local_state); MetricsLog::RegisterPrefs(local_state); MetricsService::RegisterPrefs(local_state); PageInfoWindow::RegisterPrefs(local_state); diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index 550254c..0ddfd17 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -8,30 +8,33 @@ #include "base/path_service.h" #include "base/thread.h" #include "base/waitable_event.h" -#include "chrome/browser/automation/automation_provider_list.h" #include "chrome/browser/browser_trial.h" #include "chrome/browser/chrome_thread.h" +#include "chrome/browser/google_url_tracker.h" +#include "chrome/browser/plugin_service.h" +#include "chrome/browser/profile_manager.h" +#include "chrome/browser/renderer_host/render_process_host.h" +#include "chrome/common/chrome_paths.h" +#include "chrome/common/chrome_switches.h" +#include "chrome/common/notification_service.h" +#include "chrome/common/pref_names.h" +#include "chrome/common/pref_service.h" + +#if defined(OS_WIN) +#include "chrome/browser/automation/automation_provider_list.h" #include "chrome/browser/download/download_file.h" #include "chrome/browser/download/save_file_manager.h" -#include "chrome/browser/google_url_tracker.h" #include "chrome/browser/icon_manager.h" #include "chrome/browser/metrics/metrics_service.h" -#include "chrome/browser/plugin_service.h" #include "chrome/browser/printing/print_job_manager.h" -#include "chrome/browser/profile_manager.h" -#include "chrome/browser/renderer_host/render_process_host.h" #include "chrome/browser/renderer_host/resource_dispatcher_host.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/debugger/debugger_wrapper.h" -#include "chrome/common/chrome_paths.h" -#include "chrome/common/chrome_switches.h" #include "chrome/common/clipboard_service.h" #include "chrome/common/l10n_util.h" -#include "chrome/common/notification_service.h" -#include "chrome/common/pref_names.h" -#include "chrome/common/pref_service.h" #include "chrome/views/accelerator_handler.h" #include "chrome/views/view_storage.h" +#endif namespace { @@ -58,8 +61,10 @@ class BrowserProcessSubThread : public ChromeThread { protected: virtual void Init() { +#if defined(OS_WIN) // Initializes the COM library on the current thread. CoInitialize(NULL); +#endif notification_service_ = new NotificationService; } @@ -68,9 +73,11 @@ class BrowserProcessSubThread : public ChromeThread { delete notification_service_; notification_service_ = NULL; +#if defined(OS_WIN) // Closes the COM library on the current thread. CoInitialize must // be balanced by a corresponding call to CoUninitialize. CoUninitialize(); +#endif } private: @@ -90,10 +97,10 @@ BrowserProcessImpl::BrowserProcessImpl(const CommandLine& command_line) created_db_thread_(false), created_profile_manager_(false), created_local_state_(false), - created_icon_manager_(false), initialized_broker_services_(false), - created_debugger_wrapper_(false), broker_services_(NULL), + created_icon_manager_(false), + created_debugger_wrapper_(false), module_ref_count_(0), memory_model_(MEDIUM_MEMORY_MODEL), checked_for_new_frames_(false), @@ -191,8 +198,12 @@ BrowserProcessImpl::~BrowserProcessImpl() { print_job_manager_->OnQuit(); print_job_manager_.reset(); + // TODO(port): remove this completely from BrowserProcessImpl, it has no + // business being here. +#if defined(OS_WIN) // The ViewStorage needs to go before the NotificationService. views::ViewStorage::DeleteSharedInstance(); +#endif // Now OK to destroy NotificationService. main_notification_service_.reset(); @@ -206,8 +217,10 @@ static void PostQuit(MessageLoop* message_loop) { } void BrowserProcessImpl::EndSession() { +#if defined(OS_WIN) // Notify we are going away. ::SetEvent(shutdown_event_->handle()); +#endif // Mark all the profiles as clean. ProfileManager* pm = profile_manager(); @@ -244,10 +257,15 @@ printing::PrintJobManager* BrowserProcessImpl::print_job_manager() { const std::wstring& BrowserProcessImpl::GetApplicationLocale() { DCHECK(CalledOnValidThread()); +#if defined(OS_WIN) if (locale_.empty()) { locale_ = l10n_util::GetApplicationLocale(local_state()->GetString( prefs::kApplicationLocale)); } +#else + NOTIMPLEMENTED(); + // TODO(port): port l10n_util +#endif return locale_; } @@ -349,10 +367,14 @@ void BrowserProcessImpl::CreateDebuggerWrapper(int port) { } void BrowserProcessImpl::CreateAcceleratorHandler() { +#if defined(OS_WIN) DCHECK(accelerator_handler_.get() == NULL); scoped_ptr<views::AcceleratorHandler> accelerator_handler( new views::AcceleratorHandler); accelerator_handler_.swap(accelerator_handler); +#else + // TODO(port): remove this completely, it has no business being here. +#endif } void BrowserProcessImpl::CreateGoogleURLTracker() { diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h index 8d059b3..07b09c4 100644 --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h @@ -18,9 +18,14 @@ #include "base/non_thread_safe.h" #include "base/ref_counted.h" #include "base/scoped_ptr.h" -#include "chrome/browser/automation/automation_provider_list.h" #include "chrome/browser/browser_process.h" + +#if defined(OS_WIN) +#include "chrome/browser/automation/automation_provider_list.h" #include "sandbox/src/sandbox.h" +#else +#include "chrome/common/temp_scaffolding_stubs.h" +#endif class CommandLine; class NotificationService; diff --git a/chrome/browser/first_run.h b/chrome/browser/first_run.h index 32a32dc..8a8a3eb 100644 --- a/chrome/browser/first_run.h +++ b/chrome/browser/first_run.h @@ -7,6 +7,7 @@ #include "base/basictypes.h" #include "base/command_line.h" +#include "base/gfx/native_widget_types.h" #include "chrome/browser/browser_process_impl.h" class FilePath; @@ -39,7 +40,8 @@ class FirstRun { // Imports settings in a separate process. It spawns a second dedicated // browser process that just does the import with the import progress UI. static bool ImportSettings(Profile* profile, int browser, - int items_to_import, HWND parent_window); + int items_to_import, + gfx::NativeView parent_window); // Import browser items in this process. The browser and the items to // import are encoded int the command line. This function is paired with // FirstRun::ImportSettings(). This function might or might not show diff --git a/chrome/browser/resource_message_filter.h b/chrome/browser/resource_message_filter.h index 0d7b67d..43034b6 100644 --- a/chrome/browser/resource_message_filter.h +++ b/chrome/browser/resource_message_filter.h @@ -12,13 +12,16 @@ #include "base/ref_counted.h" #include "build/build_config.h" #include "chrome/browser/net/resolve_proxy_msg_helper.h" -#include "chrome/browser/renderer_host/resource_dispatcher_host.h" #include "chrome/common/ipc_channel_proxy.h" #include "chrome/common/notification_observer.h" #include "webkit/glue/cache_manager.h" #if defined(OS_WIN) #include <windows.h> +#include "chrome/browser/renderer_host/resource_dispatcher_host.h" +#else +// TODO(port): port ResourceDispatcherHost. +#include "chrome/common/temp_scaffolding_stubs.h" #endif class ClipboardService; |