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 b4003f4cac9f4f0f4dad21b48bccd7644442ebb8..ea566e498807d29854923eba1f3b960dc52d4cef 100644 |
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
@@ -469,11 +469,10 @@ void ChromeBrowserMainPartsChromeos::PreProfileInit() { |
// Initialize the screen locker now so that it can receive |
// LOGIN_USER_CHANGED notification from UserManager. |
- if (KioskModeSettings::Get()->IsKioskModeEnabled()) { |
+ if (KioskModeSettings::Get()->IsKioskModeEnabled()) |
KioskModeIdleLogout::Initialize(); |
- } else { |
+ else |
ScreenLocker::InitClass(); |
- } |
// This forces the ProfileManager to be created and register for the |
// notification it needs to track the logged in user. |
@@ -779,6 +778,11 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { |
power_prefs_.reset(); |
event_rewriter_.reset(); |
+ // Let the ScreenLocker unregister itself from SessionManagerClient before |
+ // DBusThreadManager is shut down. |
+ if (!KioskModeSettings::Get()->IsKioskModeEnabled()) |
+ ScreenLocker::ShutDownClass(); |
+ |
// The XInput2 event listener needs to be shut down earlier than when |
// Singletons are finally destroyed in AtExitManager. |
XInputHierarchyChangedEventListener::GetInstance()->Stop(); |