OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/login/users/chrome_user_manager_impl.h" | 5 #include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <cstddef> | 9 #include <cstddef> |
10 #include <set> | 10 #include <set> |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "base/strings/utf_string_conversions.h" | 26 #include "base/strings/utf_string_conversions.h" |
27 #include "base/sys_info.h" | 27 #include "base/sys_info.h" |
28 #include "base/task_runner.h" | 28 #include "base/task_runner.h" |
29 #include "base/task_scheduler/post_task.h" | 29 #include "base/task_scheduler/post_task.h" |
30 #include "base/threading/thread_task_runner_handle.h" | 30 #include "base/threading/thread_task_runner_handle.h" |
31 #include "base/values.h" | 31 #include "base/values.h" |
32 #include "chrome/browser/browser_process.h" | 32 #include "chrome/browser/browser_process.h" |
33 #include "chrome/browser/chrome_notification_types.h" | 33 #include "chrome/browser/chrome_notification_types.h" |
34 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" | 34 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
35 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" | 35 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" |
| 36 #include "chrome/browser/chromeos/login/enterprise_user_session_metrics.h" |
36 #include "chrome/browser/chromeos/login/session/user_session_manager.h" | 37 #include "chrome/browser/chromeos/login/session/user_session_manager.h" |
37 #include "chrome/browser/chromeos/login/signin/auth_sync_observer.h" | 38 #include "chrome/browser/chromeos/login/signin/auth_sync_observer.h" |
38 #include "chrome/browser/chromeos/login/signin/auth_sync_observer_factory.h" | 39 #include "chrome/browser/chromeos/login/signin/auth_sync_observer_factory.h" |
39 #include "chrome/browser/chromeos/login/users/affiliation.h" | 40 #include "chrome/browser/chromeos/login/users/affiliation.h" |
40 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" | 41 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" |
41 #include "chrome/browser/chromeos/login/users/chrome_user_manager_util.h" | 42 #include "chrome/browser/chromeos/login/users/chrome_user_manager_util.h" |
42 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im
ages.h" | 43 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im
ages.h" |
43 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" | 44 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" |
44 #include "chrome/browser/chromeos/login/users/supervised_user_manager_impl.h" | 45 #include "chrome/browser/chromeos/login/users/supervised_user_manager_impl.h" |
45 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" | 46 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 ChromeUserManager::RegisterPrefs(registry); | 157 ChromeUserManager::RegisterPrefs(registry); |
157 | 158 |
158 registry->RegisterListPref(kDeviceLocalAccounts); | 159 registry->RegisterListPref(kDeviceLocalAccounts); |
159 registry->RegisterStringPref(kDeviceLocalAccountPendingDataRemoval, | 160 registry->RegisterStringPref(kDeviceLocalAccountPendingDataRemoval, |
160 std::string()); | 161 std::string()); |
161 registry->RegisterListPref(kReportingUsers); | 162 registry->RegisterListPref(kReportingUsers); |
162 | 163 |
163 SupervisedUserManager::RegisterPrefs(registry); | 164 SupervisedUserManager::RegisterPrefs(registry); |
164 SessionLengthLimiter::RegisterPrefs(registry); | 165 SessionLengthLimiter::RegisterPrefs(registry); |
165 BootstrapManager::RegisterPrefs(registry); | 166 BootstrapManager::RegisterPrefs(registry); |
| 167 enterprise_user_session_metrics::RegisterPrefs(registry); |
166 } | 168 } |
167 | 169 |
168 // static | 170 // static |
169 std::unique_ptr<ChromeUserManager> | 171 std::unique_ptr<ChromeUserManager> |
170 ChromeUserManagerImpl::CreateChromeUserManager() { | 172 ChromeUserManagerImpl::CreateChromeUserManager() { |
171 return std::unique_ptr<ChromeUserManager>(new ChromeUserManagerImpl()); | 173 return std::unique_ptr<ChromeUserManager>(new ChromeUserManagerImpl()); |
172 } | 174 } |
173 | 175 |
174 ChromeUserManagerImpl::ChromeUserManagerImpl() | 176 ChromeUserManagerImpl::ChromeUserManagerImpl() |
175 : ChromeUserManager(base::ThreadTaskRunnerHandle::Get()), | 177 : ChromeUserManager(base::ThreadTaskRunnerHandle::Get()), |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 avatar_policy_observer_ = | 220 avatar_policy_observer_ = |
219 base::MakeUnique<policy::CloudExternalDataPolicyObserver>( | 221 base::MakeUnique<policy::CloudExternalDataPolicyObserver>( |
220 cros_settings_, device_local_account_policy_service, | 222 cros_settings_, device_local_account_policy_service, |
221 policy::key::kUserAvatarImage, this); | 223 policy::key::kUserAvatarImage, this); |
222 avatar_policy_observer_->Init(); | 224 avatar_policy_observer_->Init(); |
223 wallpaper_policy_observer_ = | 225 wallpaper_policy_observer_ = |
224 base::MakeUnique<policy::CloudExternalDataPolicyObserver>( | 226 base::MakeUnique<policy::CloudExternalDataPolicyObserver>( |
225 cros_settings_, device_local_account_policy_service, | 227 cros_settings_, device_local_account_policy_service, |
226 policy::key::kWallpaperImage, this); | 228 policy::key::kWallpaperImage, this); |
227 wallpaper_policy_observer_->Init(); | 229 wallpaper_policy_observer_->Init(); |
| 230 |
| 231 // Record the stored session length for enrolled device. |
| 232 if (IsEnterpriseManaged()) |
| 233 enterprise_user_session_metrics::RecordStoredSessionLength(); |
228 } | 234 } |
229 | 235 |
230 ChromeUserManagerImpl::~ChromeUserManagerImpl() { | 236 ChromeUserManagerImpl::~ChromeUserManagerImpl() { |
231 } | 237 } |
232 | 238 |
233 void ChromeUserManagerImpl::Shutdown() { | 239 void ChromeUserManagerImpl::Shutdown() { |
234 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 240 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
235 ChromeUserManager::Shutdown(); | 241 ChromeUserManager::Shutdown(); |
236 | 242 |
237 local_accounts_subscription_.reset(); | 243 local_accounts_subscription_.reset(); |
238 | 244 |
| 245 if (session_length_limiter_ && IsEnterpriseManaged()) { |
| 246 // Store session length before tearing down |session_length_limiter_| for |
| 247 // enrolled devices so that it can be reported on the next run. |
| 248 const base::TimeDelta session_length = |
| 249 session_length_limiter_->GetSessionDuration(); |
| 250 if (!session_length.is_zero()) { |
| 251 enterprise_user_session_metrics::StoreSessionLength( |
| 252 GetActiveUser()->GetType(), session_length); |
| 253 } |
| 254 } |
| 255 |
239 // Stop the session length limiter. | 256 // Stop the session length limiter. |
240 session_length_limiter_.reset(); | 257 session_length_limiter_.reset(); |
241 | 258 |
242 if (device_local_account_policy_service_) | 259 if (device_local_account_policy_service_) |
243 device_local_account_policy_service_->RemoveObserver(this); | 260 device_local_account_policy_service_->RemoveObserver(this); |
244 | 261 |
245 for (UserImageManagerMap::iterator it = user_image_managers_.begin(), | 262 for (UserImageManagerMap::iterator it = user_image_managers_.begin(), |
246 ie = user_image_managers_.end(); | 263 ie = user_image_managers_.end(); |
247 it != ie; | 264 it != ie; |
248 ++it) { | 265 ++it) { |
(...skipping 1106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1355 break; | 1372 break; |
1356 default: | 1373 default: |
1357 NOTREACHED(); | 1374 NOTREACHED(); |
1358 break; | 1375 break; |
1359 } | 1376 } |
1360 | 1377 |
1361 return user; | 1378 return user; |
1362 } | 1379 } |
1363 | 1380 |
1364 } // namespace chromeos | 1381 } // namespace chromeos |
OLD | NEW |