/chrome/browser/policy/cloud/user_cloud_policy_invalidator_factory.cc

https://gitlab.com/jonnialva90/iridium-browser · C++ · 68 lines · 51 code · 11 blank · 6 comment · 1 complexity · 5f499c49b9391528a824e634d6a35878 MD5 · raw file

  1. // Copyright 2013 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 "chrome/browser/policy/cloud/user_cloud_policy_invalidator_factory.h"
  5. #include "chrome/browser/invalidation/profile_invalidation_provider_factory.h"
  6. #include "chrome/browser/policy/cloud/user_cloud_policy_invalidator.h"
  7. #include "chrome/browser/profiles/profile.h"
  8. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  9. #if defined(OS_CHROMEOS)
  10. #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
  11. #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h"
  12. #else
  13. #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
  14. #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
  15. #endif
  16. namespace policy {
  17. // static
  18. UserCloudPolicyInvalidatorFactory*
  19. UserCloudPolicyInvalidatorFactory::GetInstance() {
  20. return base::Singleton<UserCloudPolicyInvalidatorFactory>::get();
  21. }
  22. UserCloudPolicyInvalidatorFactory::UserCloudPolicyInvalidatorFactory()
  23. : BrowserContextKeyedServiceFactory(
  24. "UserCloudPolicyInvalidator",
  25. BrowserContextDependencyManager::GetInstance()) {
  26. DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
  27. #if defined(OS_CHROMEOS)
  28. DependsOn(UserCloudPolicyManagerFactoryChromeOS::GetInstance());
  29. #else
  30. DependsOn(UserCloudPolicyManagerFactory::GetInstance());
  31. #endif
  32. }
  33. UserCloudPolicyInvalidatorFactory::~UserCloudPolicyInvalidatorFactory() {}
  34. KeyedService* UserCloudPolicyInvalidatorFactory::BuildServiceInstanceFor(
  35. content::BrowserContext* context) const {
  36. Profile* profile = static_cast<Profile*>(context);
  37. #if defined(OS_CHROMEOS)
  38. CloudPolicyManager* policy_manager =
  39. UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile);
  40. #else
  41. CloudPolicyManager* policy_manager =
  42. UserCloudPolicyManagerFactory::GetForBrowserContext(context);
  43. #endif
  44. if (!policy_manager)
  45. return NULL;
  46. return new UserCloudPolicyInvalidator(profile, policy_manager);
  47. }
  48. bool UserCloudPolicyInvalidatorFactory::
  49. ServiceIsCreatedWithBrowserContext() const {
  50. // Must be automatically created to enable user policy invalidations.
  51. return true;
  52. }
  53. bool UserCloudPolicyInvalidatorFactory::ServiceIsNULLWhileTesting() const {
  54. // Not used in tests.
  55. return true;
  56. }
  57. } // namespace policy