| Index: chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc
|
| diff --git a/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc b/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc
|
| index f7eb6a9a344ffc8e00fb7868d0a8ac1c8eb75303..fb98e58d7eaaa94b4ce7be91a9269a97301c69ba 100644
|
| --- a/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc
|
| +++ b/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.h"
|
|
|
| +#include "ash/shell.h"
|
| #include "base/command_line.h"
|
| #include "base/lazy_instance.h"
|
| #include "chrome/browser/chrome_browser_main.h"
|
| @@ -62,19 +63,17 @@ ChromeBrowserMainExtraPartsAsh::~ChromeBrowserMainExtraPartsAsh() {
|
| }
|
|
|
| void ChromeBrowserMainExtraPartsAsh::PreProfileInit() {
|
| + // For OS_CHROMEOS, initialization order needs to be carefully controlled,
|
| + // so OpenAsh is called from ChromeBrowserMainPartsChromeos.
|
| +#if !defined(OS_CHROMEOS)
|
| if (chrome::ShouldOpenAshOnStartup()) {
|
| chrome::OpenAsh();
|
| - if (!CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kAshDisableTabScrubbing)) {
|
| - TabScrubber::GetInstance();
|
| - }
|
| } else {
|
| -#if !defined(OS_CHROMEOS)
|
| gfx::Screen::SetScreenTypeDelegate(new ScreenTypeDelegateWin);
|
| ui::SelectFileDialog::SetShellDialogsDelegate(
|
| &g_shell_dialogs_delegate.Get());
|
| -#endif
|
| }
|
| +#endif
|
|
|
| #if defined(FILE_MANAGER_EXTENSION)
|
| ui::SelectFileDialog::SetFactory(new SelectFileDialogExtensionFactory);
|
| @@ -82,10 +81,19 @@ void ChromeBrowserMainExtraPartsAsh::PreProfileInit() {
|
| }
|
|
|
| void ChromeBrowserMainExtraPartsAsh::PostProfileInit() {
|
| + // Initialize TabScrubber after the Ash Shell has been initialized.
|
| + if (ash::Shell::HasInstance() &&
|
| + !CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kAshDisableTabScrubbing)) {
|
| + TabScrubber::GetInstance();
|
| + }
|
| }
|
|
|
| void ChromeBrowserMainExtraPartsAsh::PostMainMessageLoopRun() {
|
| + // For OS_CHROMEOS, CloseAsh is called from ChromeBrowserMainPartsChromeos.
|
| +#if !defined(OS_CHROMEOS)
|
| chrome::CloseAsh();
|
| +#endif
|
| }
|
|
|
| namespace chrome {
|
|
|