Index: chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc |
diff --git a/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8ae87befb01faf52a9aac55b247af740ebe3f977 |
--- /dev/null |
+++ b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc |
@@ -0,0 +1,29 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
+ |
+#include "components/user_manager/user_manager.h" |
+ |
+namespace chromeos { |
+ |
+ScopedUserManagerEnabler::ScopedUserManagerEnabler( |
+ user_manager::UserManager* user_manager) { |
+ if (user_manager::UserManager::GetForTesting()) |
+ user_manager::UserManager::GetForTesting()->Shutdown(); |
+ |
+ previous_user_manager_ = |
+ user_manager::UserManager::SetForTesting(user_manager); |
+} |
+ |
+ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { |
+ // Shutdown and destroy current UserManager instance that we track. |
+ user_manager::UserManager::Get()->Shutdown(); |
+ delete user_manager::UserManager::Get(); |
+ user_manager::UserManager::SetInstance(NULL); |
+ |
+ user_manager::UserManager::SetForTesting(previous_user_manager_); |
+} |
+ |
+} // namespace chromeos |