| Index: chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| index 8c39e3311b2fa18b4c5217423e4edaa23dcb49b4..5b737ac0c1bc1b6f856600228bb6841f2496bb28 100644
|
| --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| @@ -87,32 +87,10 @@ ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos(
|
| }
|
|
|
| ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() {
|
| - // Shutdown the upgrade detector for Chrome OS. The upgrade detector
|
| - // stops monitoring changes from the update engine.
|
| - if (UpgradeDetectorChromeos::GetInstance())
|
| - UpgradeDetectorChromeos::GetInstance()->Shutdown();
|
| -
|
| - // Shutdown the network change notifier for Chrome OS. The network
|
| - // change notifier stops monitoring changes from the power manager and
|
| - // the network manager.
|
| - if (chromeos::CrosNetworkChangeNotifierFactory::GetInstance())
|
| - chromeos::CrosNetworkChangeNotifierFactory::GetInstance()->Shutdown();
|
| -
|
| chromeos::disks::DiskMountManager::Shutdown();
|
|
|
| chromeos::BluetoothManager::Shutdown();
|
|
|
| - // We should remove observers attached to D-Bus clients before
|
| - // DBusThreadManager is shut down.
|
| - if (session_manager_observer_.get()) {
|
| - chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
|
| - RemoveObserver(session_manager_observer_.get());
|
| - }
|
| - if (brightness_observer_.get()) {
|
| - chromeos::DBusThreadManager::Get()->GetPowerManagerClient()
|
| - ->RemoveObserver(brightness_observer_.get());
|
| - }
|
| -
|
| chromeos::DBusThreadManager::Shutdown();
|
|
|
| if (!parameters().ui_task && chromeos::CrosLibrary::Get())
|
| @@ -169,7 +147,7 @@ void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() {
|
| }
|
|
|
| void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() {
|
| - ChromeBrowserMainPartsPosix::PostMainMessageLoopStart();
|
| + ChromeBrowserMainPartsLinux::PostMainMessageLoopStart();
|
| MessageLoopForUI* message_loop = MessageLoopForUI::current();
|
| message_loop->AddObserver(g_message_loop_observer.Pointer());
|
|
|
| @@ -212,3 +190,30 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() {
|
| #endif
|
| }
|
| }
|
| +
|
| +// Shut down services before the browser process, etc are destroyed.
|
| +void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
|
| + ChromeBrowserMainPartsLinux::PostMainMessageLoopRun();
|
| +
|
| + // Shutdown the upgrade detector for Chrome OS. The upgrade detector
|
| + // stops monitoring changes from the update engine.
|
| + if (UpgradeDetectorChromeos::GetInstance())
|
| + UpgradeDetectorChromeos::GetInstance()->Shutdown();
|
| +
|
| + // Shutdown the network change notifier for Chrome OS. The network
|
| + // change notifier stops monitoring changes from the power manager and
|
| + // the network manager.
|
| + if (chromeos::CrosNetworkChangeNotifierFactory::GetInstance())
|
| + chromeos::CrosNetworkChangeNotifierFactory::GetInstance()->Shutdown();
|
| +
|
| + // We should remove observers attached to D-Bus clients before
|
| + // DBusThreadManager is shut down.
|
| + if (session_manager_observer_.get()) {
|
| + chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
|
| + RemoveObserver(session_manager_observer_.get());
|
| + }
|
| + if (brightness_observer_.get()) {
|
| + chromeos::DBusThreadManager::Get()->GetPowerManagerClient()
|
| + ->RemoveObserver(brightness_observer_.get());
|
| + }
|
| +}
|
|
|