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 |