Index: chrome/browser/policy/profile_policy_connector_factory.cc |
diff --git a/chrome/browser/policy/profile_policy_connector_factory.cc b/chrome/browser/policy/profile_policy_connector_factory.cc |
index 4b836952e3d96050c6bf13fddb5fc2084ab78ffe..9d49fd59ce642c3e108e6b32a2e0fad645ced42d 100644 |
--- a/chrome/browser/policy/profile_policy_connector_factory.cc |
+++ b/chrome/browser/policy/profile_policy_connector_factory.cc |
@@ -22,8 +22,9 @@ |
#if defined(OS_CHROMEOS) |
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
#include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" |
+#include "chrome/browser/chromeos/policy/user_active_directory_policy_manager.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
-#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" |
+#include "chrome/browser/chromeos/policy/user_policy_manager_factory_chromeos.h" |
#include "chrome/browser/chromeos/profiles/profile_helper.h" |
#include "components/user_manager/user.h" |
#else // Non-ChromeOS. |
@@ -72,7 +73,7 @@ ProfilePolicyConnectorFactory::ProfilePolicyConnectorFactory() |
BrowserContextDependencyManager::GetInstance()) { |
DependsOn(SchemaRegistryServiceFactory::GetInstance()); |
#if defined(OS_CHROMEOS) |
- DependsOn(UserCloudPolicyManagerFactoryChromeOS::GetInstance()); |
+ DependsOn(UserPolicyManagerFactoryChromeOS::GetInstance()); |
#else |
DependsOn(UserCloudPolicyManagerFactory::GetInstance()); |
#endif |
@@ -100,15 +101,15 @@ ProfilePolicyConnectorFactory::CreateForBrowserContextInternal( |
bool force_immediate_load) { |
DCHECK(connectors_.find(context) == connectors_.end()); |
- SchemaRegistry* schema_registry = nullptr; |
- CloudPolicyManager* user_cloud_policy_manager = nullptr; |
- |
- schema_registry = |
+ const user_manager::User* user = nullptr; |
+ SchemaRegistry* schema_registry = |
SchemaRegistryServiceFactory::GetForContext(context)->registry(); |
+ ConfigurationPolicyProvider* policy_provider = nullptr; |
+ const CloudPolicyStore* policy_store = nullptr; |
+ |
#if defined(OS_CHROMEOS) |
Profile* const profile = Profile::FromBrowserContext(context); |
- const user_manager::User* user = nullptr; |
if (chromeos::ProfileHelper::IsSigninProfile(profile)) { |
policy::DeviceCloudPolicyManagerChromeOS* device_cloud_policy_manager = |
g_browser_process->platform_part() |
@@ -123,22 +124,34 @@ ProfilePolicyConnectorFactory::CreateForBrowserContextInternal( |
user = chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
CHECK(user); |
} |
- user_cloud_policy_manager = |
- UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile); |
+ |
+ CloudPolicyManager* user_cloud_policy_manager = |
+ UserPolicyManagerFactoryChromeOS::GetCloudPolicyManagerForProfile( |
+ profile); |
+ UserActiveDirectoryPolicyManager* active_directory_manager = |
+ UserPolicyManagerFactoryChromeOS:: |
+ GetActiveDirectoryPolicyManagerForProfile(profile); |
+ if (user_cloud_policy_manager) { |
+ policy_provider = user_cloud_policy_manager; |
+ policy_store = user_cloud_policy_manager->core()->store(); |
+ } else if (active_directory_manager) { |
+ policy_provider = active_directory_manager; |
+ policy_store = active_directory_manager->store(); |
+ } |
#else |
- user_cloud_policy_manager = |
+ CloudPolicyManager* user_cloud_policy_manager = |
UserCloudPolicyManagerFactory::GetForBrowserContext(context); |
+ if (user_cloud_policy_manager) { |
+ policy_provider = user_cloud_policy_manager; |
+ policy_store = user_cloud_policy_manager->core()->store(); |
+ } |
#endif // defined(OS_CHROMEOS) |
std::unique_ptr<ProfilePolicyConnector> connector( |
new ProfilePolicyConnector()); |
if (test_providers_.empty()) { |
- connector->Init( |
-#if defined(OS_CHROMEOS) |
- user, |
-#endif |
- schema_registry, user_cloud_policy_manager); |
+ connector->Init(user, schema_registry, policy_provider, policy_store); |
} else { |
PolicyServiceImpl::Providers providers; |
providers.push_back(test_providers_.front()); |