Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: chrome/browser/policy/profile_policy_connector_factory.cc

Issue 2606773002: Setup Chromad user policy plumbing (Closed)
Patch Set: CrOS compilation fix Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698