Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / users / scoped_user_manager_enabler.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
6
7 #include "components/user_manager/user_manager.h"
8
9 namespace chromeos {
10
11 ScopedUserManagerEnabler::ScopedUserManagerEnabler(
12     user_manager::UserManager* user_manager) {
13   if (user_manager::UserManager::GetForTesting())
14     user_manager::UserManager::GetForTesting()->Shutdown();
15
16   previous_user_manager_ =
17       user_manager::UserManager::SetForTesting(user_manager);
18 }
19
20 ScopedUserManagerEnabler::~ScopedUserManagerEnabler() {
21   // Shutdown and destroy current UserManager instance that we track.
22   user_manager::UserManager::Get()->Shutdown();
23   delete user_manager::UserManager::Get();
24   user_manager::UserManager::SetInstance(NULL);
25
26   user_manager::UserManager::SetForTesting(previous_user_manager_);
27 }
28
29 }  // namespace chromeos