| Index: chrome/browser/chrome_browser_main.cc
|
| diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
| index 83ac7034e058dd44f9321b349bfb9c669fd8a4d0..840aa3260e52b251e90dd3d4d4903c38e35544c5 100644
|
| --- a/chrome/browser/chrome_browser_main.cc
|
| +++ b/chrome/browser/chrome_browser_main.cc
|
| @@ -32,8 +32,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"
|
| @@ -120,10 +118,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
|
| @@ -159,6 +153,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"
|
| @@ -193,6 +188,8 @@
|
| #endif
|
|
|
| #if defined(TOOLKIT_USES_GTK)
|
| +#include "chrome/browser/chrome_browser_main_gtk.h"
|
| +#include "chrome/browser/ui/gtk/gtk_util.h"
|
| #include "ui/gfx/gtk_util.h"
|
| #endif
|
|
|
| @@ -200,7 +197,12 @@
|
| #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/chrome_browser_main_aura.h"
|
| #include "ui/aura/desktop.h"
|
| #include "ui/aura_shell/shell.h"
|
| #endif
|
| @@ -690,9 +692,18 @@ ChromeBrowserMainParts::ChromeBrowserMainParts(
|
| // If we're running tests (ui_task is non-null).
|
| if (parameters.ui_task)
|
| browser_defaults::enable_help_app = false;
|
| +#if defined(USE_AURA)
|
| + extra_parts_.push_back(new ChromeBrowserPartsAura(this));
|
| +#endif
|
| +#if defined(TOOLKIT_USES_GTK)
|
| + extra_parts_.push_back(new ChromeBrowserPartsGtk(this));
|
| +#endif
|
| }
|
|
|
| ChromeBrowserMainParts::~ChromeBrowserMainParts() {
|
| + // Release and destroy ExtraParts in reverse order.
|
| + while (!extra_parts_.empty())
|
| + extra_parts_.pop_back();
|
| }
|
|
|
| // This will be called after the command-line has been mutated by about:flags
|
| @@ -1174,7 +1185,25 @@ DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded() {
|
| }
|
| #endif
|
|
|
| +void ChromeBrowserMainParts::PreEarlyInitialization() {
|
| + for (PartsList::iterator iter = extra_parts_.begin();
|
| + iter != extra_parts_.end(); ++iter) {
|
| + (*iter)->PreEarlyInitialization();
|
| + }
|
| +}
|
| +
|
| +void ChromeBrowserMainParts::PostEarlyInitialization() {
|
| + for (PartsList::iterator iter = extra_parts_.begin();
|
| + iter != extra_parts_.end(); ++iter) {
|
| + (*iter)->PostEarlyInitialization();
|
| + }
|
| +}
|
| +
|
| void ChromeBrowserMainParts::PreMainMessageLoopRun() {
|
| + for (PartsList::iterator iter = extra_parts_.begin();
|
| + iter != extra_parts_.end(); ++iter) {
|
| + (*iter)->PreMainMessageLoopRun();
|
| + }
|
| set_result_code(PreMainMessageLoopRunInternal());
|
| }
|
|
|
| @@ -1464,7 +1493,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
|
|
|
| if (parsed_command_line().HasSwitch(switches::kHideIcons) ||
|
| parsed_command_line().HasSwitch(switches::kShowIcons)) {
|
| - return HandleIconsCommands(parsed_command_line());
|
| + return HandleIconsCommands();
|
| }
|
| if (parsed_command_line().HasSwitch(switches::kMakeDefaultBrowser)) {
|
| return ShellIntegration::SetAsDefaultBrowser() ?
|
| @@ -1682,7 +1711,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
|
| // 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());
|
| + PrepareRestartOnCrashEnviroment();
|
|
|
| // Start watching for hangs during startup. We disarm this hang detector when
|
| // ThreadWatcher takes over or when browser is shutdown.
|
| @@ -1958,7 +1987,11 @@ void ChromeBrowserMainParts::MainMessageLoopRun() {
|
| }
|
|
|
| void ChromeBrowserMainParts::PostMainMessageLoopRun() {
|
| - // Start watching for jank during shutdown. It gets disarmed when
|
| + for (PartsList::iterator iter = extra_parts_.begin();
|
| + iter != extra_parts_.end(); ++iter) {
|
| + (*iter)->PostMainMessageLoopRun();
|
| + }
|
| + // Start watching for jank during shutdown. It gets disarmed when
|
| // |shutdown_watcher_| object is destructed.
|
| shutdown_watcher_->Arm(base::TimeDelta::FromSeconds(90));
|
|
|
| @@ -2070,6 +2103,30 @@ void ChromeBrowserMainParts::ToolkitInitialized() {
|
| #endif
|
| }
|
|
|
| +// ExtraParts ----------------------------------------------------------------
|
| +
|
| +ChromeBrowserMainParts::ExtraParts::ExtraParts(
|
| + ChromeBrowserMainParts* main_parts) :
|
| + main_parts_(main_parts) {
|
| +}
|
| +
|
| +ChromeBrowserMainParts::ExtraParts::~ExtraParts() {
|
| +}
|
| +
|
| +void ChromeBrowserMainParts::ExtraParts::PreEarlyInitialization() {
|
| +}
|
| +
|
| +void ChromeBrowserMainParts::ExtraParts::PostEarlyInitialization() {
|
| +}
|
| +
|
| +void ChromeBrowserMainParts::ExtraParts::PreMainMessageLoopRun() {
|
| +}
|
| +
|
| +void ChromeBrowserMainParts::ExtraParts::PostMainMessageLoopRun() {
|
| +}
|
| +
|
| +// -----------------------------------------------------------------------------
|
| +
|
| // This code is specific to the Windows-only PreReadExperiment field-trial.
|
| void RecordPreReadExperimentTime(const char* name, base::TimeDelta time) {
|
| DCHECK(name != NULL);
|
|
|