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

Unified Diff: chrome/browser/chrome_browser_main.cc

Issue 8302016: Make GTK and Aura parts orthogonal to OS parts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chrome_browser_main.cc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 8940a678debc0be547517e8a6bf95f1067db07d9..333480c582ee09bd035cc501e4219d7b847abd60 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -33,8 +33,6 @@
#include "chrome/browser/background/background_mode_manager.h"
#include "chrome/browser/browser_process_impl.h"
#include "chrome/browser/browser_shutdown.h"
-#include "chrome/browser/chrome_browser_main_gtk.h"
-#include "chrome/browser/chrome_browser_main_win.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/extensions/default_apps_trial.h"
#include "chrome/browser/extensions/extension_protocols.h"
@@ -121,10 +119,6 @@
#include "chrome/app/breakpad_linux.h"
#endif
-#if defined(TOOLKIT_USES_GTK)
-#include "chrome/browser/ui/gtk/gtk_util.h"
-#endif
-
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
#include "chrome/browser/first_run/upgrade_util_linux.h"
#endif
@@ -160,6 +154,7 @@
#include "base/win/windows_version.h"
#include "chrome/browser/browser_trial.h"
#include "chrome/browser/browser_util_win.h"
+#include "chrome/browser/chrome_browser_main_win.h"
#include "chrome/browser/first_run/try_chrome_dialog_view.h"
#include "chrome/browser/first_run/upgrade_util_win.h"
#include "chrome/browser/fragmentation_checker_win.h"
@@ -194,6 +189,7 @@
#endif
#if defined(TOOLKIT_USES_GTK)
+#include "chrome/browser/ui/gtk/gtk_util.h"
#include "ui/gfx/gtk_util.h"
#endif
@@ -201,6 +197,10 @@
#include "ui/base/touch/touch_factory.h"
#endif
+#if defined(USE_X11)
+#include "chrome/browser/chrome_browser_main_x11.h"
+#endif
+
#if defined(USE_AURA)
#include "chrome/browser/ui/views/aura/chrome_shell_delegate.h"
#include "ui/aura/desktop.h"
@@ -685,7 +685,9 @@ const char kMissingLocaleDataMessage[] =
ChromeBrowserMainParts::ChromeBrowserMainParts(
const MainFunctionParams& parameters)
- : BrowserMainParts(parameters),
+ : content::BrowserMainParts(),
jam 2011/10/24 19:36:00 not necessary
stevenjb 2011/10/25 02:51:04 Done.
+ parameters_(parameters),
+ parsed_command_line_(parameters.command_line_),
shutdown_watcher_(new ShutdownWatcherHelper()),
record_search_engine_(false),
translate_manager_(NULL),
@@ -702,12 +704,12 @@ ChromeBrowserMainParts::~ChromeBrowserMainParts() {
// This will be called after the command-line has been mutated by about:flags
MetricsService* ChromeBrowserMainParts::SetupMetricsAndFieldTrials(
- const CommandLine& parsed_command_line,
PrefService* local_state) {
// Must initialize metrics after labs have been converted into switches,
// but before field trials are set up (so that client ID is available for
// one-time randomized field trials).
- MetricsService* metrics = InitializeMetrics(parsed_command_line, local_state);
+ MetricsService* metrics = InitializeMetrics(
+ parsed_command_line(), local_state);
jam 2011/10/24 19:36:00 nit: now that this is a member variable, just pars
stevenjb 2011/10/25 02:51:04 Done.
// Initialize FieldTrialList to support FieldTrials that use one-time
// randomization. The client ID will be empty if the user has not opted
@@ -1179,11 +1181,7 @@ DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded() {
}
#endif
-void ChromeBrowserMainParts::PreMainMessageLoopRun() {
- set_result_code(PreMainMessageLoopRunInternal());
-}
-
-int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
+int ChromeBrowserMainParts::PreMainMessageLoopRun() {
run_message_loop_ = false;
FilePath user_data_dir;
#if defined(OS_WIN)
@@ -1409,8 +1407,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
// Now the command line has been mutated based on about:flags, we can
// set up metrics and initialize field trials.
- MetricsService* metrics =
- SetupMetricsAndFieldTrials(parsed_command_line(), local_state);
+ MetricsService* metrics = SetupMetricsAndFieldTrials(local_state);
// Now that all preferences have been registered, set the install date
// for the uninstall metrics if this is our first run. This only actually
@@ -1466,12 +1463,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
if (parsed_command_line().HasSwitch(switches::kUninstall)) {
return DoUninstallTasks(already_running);
}
-#endif
if (parsed_command_line().HasSwitch(switches::kHideIcons) ||
parsed_command_line().HasSwitch(switches::kShowIcons)) {
- return HandleIconsCommands(parsed_command_line());
+ return ChromeBrowserMainPartsWin::HandleIconsCommands(
+ parsed_command_line());
jam 2011/10/24 19:36:00 ditto
stevenjb 2011/10/25 02:51:04 Done.
}
+#endif
+
if (parsed_command_line().HasSwitch(switches::kMakeDefaultBrowser)) {
return ShellIntegration::SetAsDefaultBrowser() ?
static_cast<int>(content::RESULT_CODE_NORMAL_EXIT) :
@@ -1624,7 +1623,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
// Do the tasks if chrome has been upgraded while it was last running.
if (!already_running && upgrade_util::DoUpgradeTasks(parsed_command_line()))
return content::RESULT_CODE_NORMAL_EXIT;
-#endif
// Check if there is any machine level Chrome installed on the current
// machine. If yes and the current Chrome process is user level, we do not
@@ -1635,9 +1633,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
// processes etc).
// Do not allow this to occur for Chrome Frame user-to-system handoffs.
if (!parsed_command_line().HasSwitch(switches::kChromeFrame) &&
- CheckMachineLevelInstall()) {
+ ChromeBrowserMainPartsWin::CheckMachineLevelInstall()) {
return chrome::RESULT_CODE_MACHINE_LEVEL_INSTALL_EXISTS;
}
+#endif
// Create the TranslateManager singleton.
translate_manager_ = TranslateManager::GetInstance();
@@ -1685,10 +1684,13 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
g_browser_process->profile_manager()->OnImportFinished(profile_);
} // if (is_first_run)
+#if defined(OS_WIN)
// Sets things up so that if we crash from this point on, a dialog will
// popup asking the user to restart chrome. It is done this late to avoid
// testing against a bunch of special cases that are taken care early on.
- PrepareRestartOnCrashEnviroment(parsed_command_line());
+ ChromeBrowserMainPartsWin::PrepareRestartOnCrashEnviroment(
+ parsed_command_line());
+#endif // OS_WIN
// Start watching for hangs during startup. We disarm this hang detector when
// ThreadWatcher takes over or when browser is shutdown.
@@ -1700,8 +1702,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
// This could be run as late as WM_QUERYENDSESSION for system update reboots,
// but should run on startup if extended to handle crashes/hangs/patches.
// Also, better to run once here than once for each HWND's WM_QUERYENDSESSION.
- if (base::win::GetVersion() >= base::win::VERSION_VISTA)
- RegisterApplicationRestart(parsed_command_line());
+ if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
+ ChromeBrowserMainPartsWin::RegisterApplicationRestart(
+ parsed_command_line());
+ }
#endif // OS_WIN
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
@@ -1938,9 +1942,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
return result_code;
}
-void ChromeBrowserMainParts::MainMessageLoopRun() {
+bool ChromeBrowserMainParts::MainMessageLoopRun() {
if (!run_message_loop_)
- return;
+ return true; // Don't run the default message loop.
// This should be invoked as close to the start of the browser's
// UI thread message loop as possible to get a stable measurement
@@ -1961,6 +1965,8 @@ void ChromeBrowserMainParts::MainMessageLoopRun() {
chromeos::BootTimesLoader::Get()->AddLogoutTimeMarker("UIMessageLoopEnded",
true);
#endif
+
+ return true;
}
void ChromeBrowserMainParts::PostMainMessageLoopRun() {

Powered by Google App Engine
This is Rietveld 408576698