| Index: chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
|
| diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
|
| index 782663d2df5a1aa759da106827ac800953d55e51..1811306000fc18dcfc0bc2486f81c1ba535a0ac9 100644
|
| --- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
|
| +++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
|
| @@ -33,6 +33,7 @@
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
|
| #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h"
|
| +#include "chrome/browser/chromeos/login/enterprise_user_session_metrics.h"
|
| #include "chrome/browser/chromeos/login/session/user_session_manager.h"
|
| #include "chrome/browser/chromeos/login/signin/auth_sync_observer.h"
|
| #include "chrome/browser/chromeos/login/signin/auth_sync_observer_factory.h"
|
| @@ -163,6 +164,7 @@ void ChromeUserManagerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
| SupervisedUserManager::RegisterPrefs(registry);
|
| SessionLengthLimiter::RegisterPrefs(registry);
|
| BootstrapManager::RegisterPrefs(registry);
|
| + enterprise_user_session_metrics::RegisterPrefs(registry);
|
| }
|
|
|
| // static
|
| @@ -225,6 +227,10 @@ ChromeUserManagerImpl::ChromeUserManagerImpl()
|
| cros_settings_, device_local_account_policy_service,
|
| policy::key::kWallpaperImage, this);
|
| wallpaper_policy_observer_->Init();
|
| +
|
| + // Record the stored session length for enrolled device.
|
| + if (IsEnterpriseManaged())
|
| + enterprise_user_session_metrics::RecordStoredSessionLength();
|
| }
|
|
|
| ChromeUserManagerImpl::~ChromeUserManagerImpl() {
|
| @@ -236,6 +242,17 @@ void ChromeUserManagerImpl::Shutdown() {
|
|
|
| local_accounts_subscription_.reset();
|
|
|
| + if (session_length_limiter_ && IsEnterpriseManaged()) {
|
| + // Store session length before tearing down |session_length_limiter_| for
|
| + // enrolled devices so that it can be reported on the next run.
|
| + const base::TimeDelta session_length =
|
| + session_length_limiter_->GetSessionDuration();
|
| + if (!session_length.is_zero()) {
|
| + enterprise_user_session_metrics::StoreSessionLength(
|
| + GetActiveUser()->GetType(), session_length);
|
| + }
|
| + }
|
| +
|
| // Stop the session length limiter.
|
| session_length_limiter_.reset();
|
|
|
|
|