| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 5 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/singleton.h" | 10 #include "base/memory/singleton.h" |
| 11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
| 12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/policy/profile_policy_connector.h" | 13 #include "chrome/browser/policy/profile_policy_connector.h" |
| 14 #include "chrome/browser/policy/schema_registry_service.h" | 14 #include "chrome/browser/policy/schema_registry_service.h" |
| 15 #include "chrome/browser/policy/schema_registry_service_factory.h" | 15 #include "chrome/browser/policy/schema_registry_service_factory.h" |
| 16 #include "chrome/browser/profiles/incognito_helpers.h" | 16 #include "chrome/browser/profiles/incognito_helpers.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 18 #include "components/keyed_service/content/browser_context_dependency_manager.h" | 18 #include "components/keyed_service/content/browser_context_dependency_manager.h" |
| 19 #include "components/policy/core/common/policy_service.h" | 19 #include "components/policy/core/common/policy_service.h" |
| 20 #include "components/policy/core/common/policy_service_impl.h" | 20 #include "components/policy/core/common/policy_service_impl.h" |
| 21 | 21 |
| 22 #if defined(OS_CHROMEOS) | 22 #if defined(OS_CHROMEOS) |
| 23 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 23 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 24 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" | 24 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" |
| 25 #include "chrome/browser/chromeos/policy/user_active_directory_policy_manager.h" |
| 25 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" | 26 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
| 26 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" | 27 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" |
| 27 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 28 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 28 #include "components/user_manager/user.h" | 29 #include "components/user_manager/user.h" |
| 29 #else // Non-ChromeOS. | 30 #else // Non-ChromeOS. |
| 30 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" | 31 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" |
| 31 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" | 32 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" |
| 32 #endif | 33 #endif |
| 33 | 34 |
| 34 namespace policy { | 35 namespace policy { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 CHECK(it != connectors_.end()); | 94 CHECK(it != connectors_.end()); |
| 94 return it->second; | 95 return it->second; |
| 95 } | 96 } |
| 96 | 97 |
| 97 std::unique_ptr<ProfilePolicyConnector> | 98 std::unique_ptr<ProfilePolicyConnector> |
| 98 ProfilePolicyConnectorFactory::CreateForBrowserContextInternal( | 99 ProfilePolicyConnectorFactory::CreateForBrowserContextInternal( |
| 99 content::BrowserContext* context, | 100 content::BrowserContext* context, |
| 100 bool force_immediate_load) { | 101 bool force_immediate_load) { |
| 101 DCHECK(connectors_.find(context) == connectors_.end()); | 102 DCHECK(connectors_.find(context) == connectors_.end()); |
| 102 | 103 |
| 103 SchemaRegistry* schema_registry = nullptr; | 104 const user_manager::User* user = nullptr; |
| 104 CloudPolicyManager* user_cloud_policy_manager = nullptr; | 105 SchemaRegistry* schema_registry = |
| 105 | |
| 106 schema_registry = | |
| 107 SchemaRegistryServiceFactory::GetForContext(context)->registry(); | 106 SchemaRegistryServiceFactory::GetForContext(context)->registry(); |
| 108 | 107 |
| 109 #if defined(OS_CHROMEOS) | 108 #if defined(OS_CHROMEOS) |
| 110 Profile* const profile = Profile::FromBrowserContext(context); | 109 Profile* const profile = Profile::FromBrowserContext(context); |
| 111 const user_manager::User* user = nullptr; | |
| 112 if (chromeos::ProfileHelper::IsSigninProfile(profile)) { | 110 if (chromeos::ProfileHelper::IsSigninProfile(profile)) { |
| 113 policy::DeviceCloudPolicyManagerChromeOS* device_cloud_policy_manager = | 111 policy::DeviceCloudPolicyManagerChromeOS* device_cloud_policy_manager = |
| 114 g_browser_process->platform_part() | 112 g_browser_process->platform_part() |
| 115 ->browser_policy_connector_chromeos() | 113 ->browser_policy_connector_chromeos() |
| 116 ->GetDeviceCloudPolicyManager(); | 114 ->GetDeviceCloudPolicyManager(); |
| 117 // TODO(tnagel): Do we need to do something for Active Directory management? | 115 // TODO(tnagel): Do we need to do something for Active Directory management? |
| 118 if (device_cloud_policy_manager) { | 116 if (device_cloud_policy_manager) { |
| 119 device_cloud_policy_manager->SetSigninProfileSchemaRegistry( | 117 device_cloud_policy_manager->SetSigninProfileSchemaRegistry( |
| 120 schema_registry); | 118 schema_registry); |
| 121 } | 119 } |
| 122 } else { | 120 } else { |
| 123 user = chromeos::ProfileHelper::Get()->GetUserByProfile(profile); | 121 user = chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
| 124 CHECK(user); | 122 CHECK(user); |
| 125 } | 123 } |
| 126 user_cloud_policy_manager = | 124 CloudPolicyManager* user_cloud_policy_manager = |
| 127 UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile); | 125 UserCloudPolicyManagerFactoryChromeOS::GetCloudPolicyManagerForProfile( |
| 126 profile); |
| 127 ConfigurationPolicyProvider* policy_provider = nullptr; |
| 128 const CloudPolicyStore* policy_store = nullptr; |
| 129 if (user_cloud_policy_manager) { |
| 130 policy_provider = user_cloud_policy_manager; |
| 131 policy_store = user_cloud_policy_manager->core()->store(); |
| 132 } else { |
| 133 UserActiveDirectoryPolicyManager* active_directory_manager = |
| 134 UserCloudPolicyManagerFactoryChromeOS:: |
| 135 GetActiveDirectoryPolicyManagerForProfile(profile); |
| 136 if (active_directory_manager) { |
| 137 policy_provider = active_directory_manager; |
| 138 policy_store = active_directory_manager->store(); |
| 139 } |
| 140 } |
| 128 #else | 141 #else |
| 129 user_cloud_policy_manager = | 142 CloudPolicyManager* user_cloud_policy_manager = |
| 130 UserCloudPolicyManagerFactory::GetForBrowserContext(context); | 143 UserCloudPolicyManagerFactory::GetForBrowserContext(context); |
| 144 const CloudPolicyStore* policy_store = nullptr; |
| 145 ConfigurationPolicyProvider* policy_provider = user_cloud_policy_manager; |
| 146 if (user_cloud_policy_manager) { |
| 147 policy_store = user_cloud_policy_manager->core()->store(); |
| 148 } |
| 131 #endif // defined(OS_CHROMEOS) | 149 #endif // defined(OS_CHROMEOS) |
| 132 | 150 |
| 133 std::unique_ptr<ProfilePolicyConnector> connector( | 151 std::unique_ptr<ProfilePolicyConnector> connector( |
| 134 new ProfilePolicyConnector()); | 152 new ProfilePolicyConnector()); |
| 135 | 153 |
| 136 if (test_providers_.empty()) { | 154 if (test_providers_.empty()) { |
| 137 connector->Init( | 155 connector->Init(user, schema_registry, policy_provider, policy_store); |
| 138 #if defined(OS_CHROMEOS) | |
| 139 user, | |
| 140 #endif | |
| 141 schema_registry, user_cloud_policy_manager); | |
| 142 } else { | 156 } else { |
| 143 PolicyServiceImpl::Providers providers; | 157 PolicyServiceImpl::Providers providers; |
| 144 providers.push_back(test_providers_.front()); | 158 providers.push_back(test_providers_.front()); |
| 145 test_providers_.pop_front(); | 159 test_providers_.pop_front(); |
| 146 std::unique_ptr<PolicyService> service(new PolicyServiceImpl(providers)); | 160 std::unique_ptr<PolicyService> service(new PolicyServiceImpl(providers)); |
| 147 connector->InitForTesting(std::move(service)); | 161 connector->InitForTesting(std::move(service)); |
| 148 } | 162 } |
| 149 | 163 |
| 150 connectors_[context] = connector.get(); | 164 connectors_[context] = connector.get(); |
| 151 return connector; | 165 return connector; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 173 | 187 |
| 174 bool ProfilePolicyConnectorFactory::HasTestingFactory( | 188 bool ProfilePolicyConnectorFactory::HasTestingFactory( |
| 175 content::BrowserContext* context) { | 189 content::BrowserContext* context) { |
| 176 return false; | 190 return false; |
| 177 } | 191 } |
| 178 | 192 |
| 179 void ProfilePolicyConnectorFactory::CreateServiceNow( | 193 void ProfilePolicyConnectorFactory::CreateServiceNow( |
| 180 content::BrowserContext* context) {} | 194 content::BrowserContext* context) {} |
| 181 | 195 |
| 182 } // namespace policy | 196 } // namespace policy |
| OLD | NEW |