scoped_user_manager.cc 958 B

1234567891011121314151617181920212223242526272829303132
  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. #include "components/user_manager/scoped_user_manager.h"
  5. #include <utility>
  6. #include "base/check_op.h"
  7. #include "components/user_manager/user_manager.h"
  8. namespace user_manager {
  9. ScopedUserManager::ScopedUserManager(std::unique_ptr<UserManager> user_manager)
  10. : user_manager_(std::move(user_manager)) {
  11. if (UserManager::GetForTesting())
  12. UserManager::GetForTesting()->Shutdown();
  13. previous_user_manager_ = UserManager::SetForTesting(user_manager_.get());
  14. }
  15. ScopedUserManager::~ScopedUserManager() {
  16. DCHECK_EQ(UserManager::Get(), user_manager_.get());
  17. // Shutdown and destroy current UserManager instance that we track.
  18. UserManager::Get()->Shutdown();
  19. UserManager::Get()->Destroy();
  20. UserManager::SetForTesting(previous_user_manager_);
  21. }
  22. } // namespace user_manager