| 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();
 | 
| 
 |