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/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" | 5 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom
eos.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 } | 79 } |
80 | 80 |
81 // static | 81 // static |
82 UserCloudPolicyManagerChromeOS* | 82 UserCloudPolicyManagerChromeOS* |
83 UserCloudPolicyManagerFactoryChromeOS::GetForProfile( | 83 UserCloudPolicyManagerFactoryChromeOS::GetForProfile( |
84 Profile* profile) { | 84 Profile* profile) { |
85 return GetInstance()->GetManagerForProfile(profile); | 85 return GetInstance()->GetManagerForProfile(profile); |
86 } | 86 } |
87 | 87 |
88 // static | 88 // static |
89 scoped_ptr<UserCloudPolicyManagerChromeOS> | 89 std::unique_ptr<UserCloudPolicyManagerChromeOS> |
90 UserCloudPolicyManagerFactoryChromeOS::CreateForProfile( | 90 UserCloudPolicyManagerFactoryChromeOS::CreateForProfile( |
91 Profile* profile, | 91 Profile* profile, |
92 bool force_immediate_load, | 92 bool force_immediate_load, |
93 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { | 93 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { |
94 return GetInstance()->CreateManagerForProfile( | 94 return GetInstance()->CreateManagerForProfile( |
95 profile, force_immediate_load, background_task_runner); | 95 profile, force_immediate_load, background_task_runner); |
96 } | 96 } |
97 | 97 |
98 UserCloudPolicyManagerFactoryChromeOS::UserCloudPolicyManagerFactoryChromeOS() | 98 UserCloudPolicyManagerFactoryChromeOS::UserCloudPolicyManagerFactoryChromeOS() |
99 : BrowserContextKeyedBaseFactory( | 99 : BrowserContextKeyedBaseFactory( |
100 "UserCloudPolicyManagerChromeOS", | 100 "UserCloudPolicyManagerChromeOS", |
101 BrowserContextDependencyManager::GetInstance()) { | 101 BrowserContextDependencyManager::GetInstance()) { |
102 DependsOn(SchemaRegistryServiceFactory::GetInstance()); | 102 DependsOn(SchemaRegistryServiceFactory::GetInstance()); |
103 } | 103 } |
104 | 104 |
105 UserCloudPolicyManagerFactoryChromeOS:: | 105 UserCloudPolicyManagerFactoryChromeOS:: |
106 ~UserCloudPolicyManagerFactoryChromeOS() {} | 106 ~UserCloudPolicyManagerFactoryChromeOS() {} |
107 | 107 |
108 UserCloudPolicyManagerChromeOS* | 108 UserCloudPolicyManagerChromeOS* |
109 UserCloudPolicyManagerFactoryChromeOS::GetManagerForProfile( | 109 UserCloudPolicyManagerFactoryChromeOS::GetManagerForProfile( |
110 Profile* profile) { | 110 Profile* profile) { |
111 // Get the manager for the original profile, since the PolicyService is | 111 // Get the manager for the original profile, since the PolicyService is |
112 // also shared between the incognito Profile and the original Profile. | 112 // also shared between the incognito Profile and the original Profile. |
113 ManagerMap::const_iterator it = managers_.find(profile->GetOriginalProfile()); | 113 ManagerMap::const_iterator it = managers_.find(profile->GetOriginalProfile()); |
114 return it != managers_.end() ? it->second : NULL; | 114 return it != managers_.end() ? it->second : NULL; |
115 } | 115 } |
116 | 116 |
117 scoped_ptr<UserCloudPolicyManagerChromeOS> | 117 std::unique_ptr<UserCloudPolicyManagerChromeOS> |
118 UserCloudPolicyManagerFactoryChromeOS::CreateManagerForProfile( | 118 UserCloudPolicyManagerFactoryChromeOS::CreateManagerForProfile( |
119 Profile* profile, | 119 Profile* profile, |
120 bool force_immediate_load, | 120 bool force_immediate_load, |
121 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { | 121 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { |
122 const base::CommandLine* command_line = | 122 const base::CommandLine* command_line = |
123 base::CommandLine::ForCurrentProcess(); | 123 base::CommandLine::ForCurrentProcess(); |
124 // Don't initialize cloud policy for the signin profile. | 124 // Don't initialize cloud policy for the signin profile. |
125 if (chromeos::ProfileHelper::IsSigninProfile(profile)) | 125 if (chromeos::ProfileHelper::IsSigninProfile(profile)) |
126 return scoped_ptr<UserCloudPolicyManagerChromeOS>(); | 126 return std::unique_ptr<UserCloudPolicyManagerChromeOS>(); |
127 | 127 |
128 // |user| should never be NULL except for the signin profile. This object is | 128 // |user| should never be NULL except for the signin profile. This object is |
129 // created as part of the Profile creation, which happens right after | 129 // created as part of the Profile creation, which happens right after |
130 // sign-in. The just-signed-in User is the active user during that time. | 130 // sign-in. The just-signed-in User is the active user during that time. |
131 const user_manager::User* user = | 131 const user_manager::User* user = |
132 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); | 132 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
133 CHECK(user); | 133 CHECK(user); |
134 | 134 |
135 // User policy exists for enterprise accounts only: | 135 // User policy exists for enterprise accounts only: |
136 // - For regular enterprise users (those who have a GAIA account), a | 136 // - For regular enterprise users (those who have a GAIA account), a |
137 // |UserCloudPolicyManagerChromeOS| is created here. | 137 // |UserCloudPolicyManagerChromeOS| is created here. |
138 // - For device-local accounts, policy is provided by | 138 // - For device-local accounts, policy is provided by |
139 // |DeviceLocalAccountPolicyService|. | 139 // |DeviceLocalAccountPolicyService|. |
140 // All other user types do not have user policy. | 140 // All other user types do not have user policy. |
141 const AccountId account_id = user->GetAccountId(); | 141 const AccountId account_id = user->GetAccountId(); |
142 if (!user->HasGaiaAccount() || user->IsSupervised() || | 142 if (!user->HasGaiaAccount() || user->IsSupervised() || |
143 BrowserPolicyConnector::IsNonEnterpriseUser(account_id.GetUserEmail())) { | 143 BrowserPolicyConnector::IsNonEnterpriseUser(account_id.GetUserEmail())) { |
144 return scoped_ptr<UserCloudPolicyManagerChromeOS>(); | 144 return std::unique_ptr<UserCloudPolicyManagerChromeOS>(); |
145 } | 145 } |
146 | 146 |
147 policy::BrowserPolicyConnectorChromeOS* connector = | 147 policy::BrowserPolicyConnectorChromeOS* connector = |
148 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | 148 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
149 const bool is_browser_restart = | 149 const bool is_browser_restart = |
150 command_line->HasSwitch(chromeos::switches::kLoginUser); | 150 command_line->HasSwitch(chromeos::switches::kLoginUser); |
151 const user_manager::UserManager* const user_manager = | 151 const user_manager::UserManager* const user_manager = |
152 user_manager::UserManager::Get(); | 152 user_manager::UserManager::Get(); |
153 | 153 |
154 // We want to block for policy in a few situations: if the user is new, or | 154 // We want to block for policy in a few situations: if the user is new, or |
(...skipping 28 matching lines...) Expand all Loading... |
183 const base::FilePath legacy_dir = profile_dir.Append(kDeviceManagementDir); | 183 const base::FilePath legacy_dir = profile_dir.Append(kDeviceManagementDir); |
184 const base::FilePath policy_cache_file = legacy_dir.Append(kPolicy); | 184 const base::FilePath policy_cache_file = legacy_dir.Append(kPolicy); |
185 const base::FilePath token_cache_file = legacy_dir.Append(kToken); | 185 const base::FilePath token_cache_file = legacy_dir.Append(kToken); |
186 const base::FilePath component_policy_cache_dir = | 186 const base::FilePath component_policy_cache_dir = |
187 profile_dir.Append(kPolicy).Append(kComponentsDir); | 187 profile_dir.Append(kPolicy).Append(kComponentsDir); |
188 const base::FilePath external_data_dir = | 188 const base::FilePath external_data_dir = |
189 profile_dir.Append(kPolicy).Append(kPolicyExternalDataDir); | 189 profile_dir.Append(kPolicy).Append(kPolicyExternalDataDir); |
190 base::FilePath policy_key_dir; | 190 base::FilePath policy_key_dir; |
191 CHECK(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, &policy_key_dir)); | 191 CHECK(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, &policy_key_dir)); |
192 | 192 |
193 scoped_ptr<UserCloudPolicyStoreChromeOS> store( | 193 std::unique_ptr<UserCloudPolicyStoreChromeOS> store( |
194 new UserCloudPolicyStoreChromeOS( | 194 new UserCloudPolicyStoreChromeOS( |
195 chromeos::DBusThreadManager::Get()->GetCryptohomeClient(), | 195 chromeos::DBusThreadManager::Get()->GetCryptohomeClient(), |
196 chromeos::DBusThreadManager::Get()->GetSessionManagerClient(), | 196 chromeos::DBusThreadManager::Get()->GetSessionManagerClient(), |
197 background_task_runner, account_id, policy_key_dir, token_cache_file, | 197 background_task_runner, account_id, policy_key_dir, token_cache_file, |
198 policy_cache_file)); | 198 policy_cache_file)); |
199 | 199 |
200 scoped_refptr<base::SequencedTaskRunner> backend_task_runner = | 200 scoped_refptr<base::SequencedTaskRunner> backend_task_runner = |
201 content::BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( | 201 content::BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( |
202 content::BrowserThread::GetBlockingPool()->GetSequenceToken()); | 202 content::BrowserThread::GetBlockingPool()->GetSequenceToken()); |
203 scoped_refptr<base::SequencedTaskRunner> io_task_runner = | 203 scoped_refptr<base::SequencedTaskRunner> io_task_runner = |
204 content::BrowserThread::GetMessageLoopProxyForThread( | 204 content::BrowserThread::GetMessageLoopProxyForThread( |
205 content::BrowserThread::IO); | 205 content::BrowserThread::IO); |
206 scoped_ptr<CloudExternalDataManager> external_data_manager( | 206 std::unique_ptr<CloudExternalDataManager> external_data_manager( |
207 new UserCloudExternalDataManager(base::Bind(&GetChromePolicyDetails), | 207 new UserCloudExternalDataManager(base::Bind(&GetChromePolicyDetails), |
208 backend_task_runner, | 208 backend_task_runner, io_task_runner, |
209 io_task_runner, | 209 external_data_dir, store.get())); |
210 external_data_dir, | |
211 store.get())); | |
212 if (force_immediate_load) | 210 if (force_immediate_load) |
213 store->LoadImmediately(); | 211 store->LoadImmediately(); |
214 | 212 |
215 scoped_refptr<base::SequencedTaskRunner> file_task_runner = | 213 scoped_refptr<base::SequencedTaskRunner> file_task_runner = |
216 content::BrowserThread::GetMessageLoopProxyForThread( | 214 content::BrowserThread::GetMessageLoopProxyForThread( |
217 content::BrowserThread::FILE); | 215 content::BrowserThread::FILE); |
218 | 216 |
219 scoped_ptr<UserCloudPolicyManagerChromeOS> manager( | 217 std::unique_ptr<UserCloudPolicyManagerChromeOS> manager( |
220 new UserCloudPolicyManagerChromeOS( | 218 new UserCloudPolicyManagerChromeOS( |
221 std::move(store), std::move(external_data_manager), | 219 std::move(store), std::move(external_data_manager), |
222 component_policy_cache_dir, wait_for_policy_fetch, | 220 component_policy_cache_dir, wait_for_policy_fetch, |
223 initial_policy_fetch_timeout, base::ThreadTaskRunnerHandle::Get(), | 221 initial_policy_fetch_timeout, base::ThreadTaskRunnerHandle::Get(), |
224 file_task_runner, io_task_runner)); | 222 file_task_runner, io_task_runner)); |
225 | 223 |
226 bool wildcard_match = false; | 224 bool wildcard_match = false; |
227 if (connector->IsEnterpriseManaged() && | 225 if (connector->IsEnterpriseManaged() && |
228 chromeos::CrosSettings::IsWhitelisted(account_id.GetUserEmail(), | 226 chromeos::CrosSettings::IsWhitelisted(account_id.GetUserEmail(), |
229 &wildcard_match) && | 227 &wildcard_match) && |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 | 262 |
265 bool UserCloudPolicyManagerFactoryChromeOS::HasTestingFactory( | 263 bool UserCloudPolicyManagerFactoryChromeOS::HasTestingFactory( |
266 content::BrowserContext* context) { | 264 content::BrowserContext* context) { |
267 return false; | 265 return false; |
268 } | 266 } |
269 | 267 |
270 void UserCloudPolicyManagerFactoryChromeOS::CreateServiceNow( | 268 void UserCloudPolicyManagerFactoryChromeOS::CreateServiceNow( |
271 content::BrowserContext* context) {} | 269 content::BrowserContext* context) {} |
272 | 270 |
273 } // namespace policy | 271 } // namespace policy |
OLD | NEW |