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

Side by Side Diff: chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc

Issue 2692163003: cros: Add enterprise user session metrics (Closed)
Patch Set: update sparse histogram comment Created 3 years, 10 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 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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/signin_specifics.cc ('k') | chrome/browser/chromeos/session_length_limiter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698