| Index: chrome/browser/chromeos/power/power_prefs.cc
|
| diff --git a/chrome/browser/chromeos/power/power_prefs.cc b/chrome/browser/chromeos/power/power_prefs.cc
|
| index 2e853a3b39243352dbb6d74f9e19e959837c50dd..b2e0782309090f894c8e44fe0e97c5b0ee52aaf7 100644
|
| --- a/chrome/browser/chromeos/power/power_prefs.cc
|
| +++ b/chrome/browser/chromeos/power/power_prefs.cc
|
| @@ -26,11 +26,15 @@ namespace chromeos {
|
|
|
| PowerPrefs::PowerPrefs(PowerPolicyController* power_policy_controller)
|
| : power_policy_controller_(power_policy_controller),
|
| - profile_(NULL) {
|
| + profile_(NULL),
|
| + screen_is_locked_(false) {
|
| notification_registrar_.Add(this,
|
| chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
|
| content::NotificationService::AllSources());
|
| notification_registrar_.Add(this,
|
| + chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
|
| + content::NotificationService::AllSources());
|
| + notification_registrar_.Add(this,
|
| chrome::NOTIFICATION_SESSION_STARTED,
|
| content::NotificationService::AllSources());
|
| notification_registrar_.Add(this,
|
| @@ -82,6 +86,12 @@ void PowerPrefs::Observe(int type,
|
| SetProfile(ProfileHelper::GetSigninProfile());
|
| break;
|
| }
|
| + case chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED:
|
| + // Update the policy in case different delays have been set for the lock
|
| + // screen.
|
| + screen_is_locked_ = *content::Details<bool>(details).ptr();
|
| + UpdatePowerPolicyFromPrefs();
|
| + break;
|
| case chrome::NOTIFICATION_SESSION_STARTED:
|
| // Update |profile_| when entering a session.
|
| SetProfile(ProfileManager::GetPrimaryUserProfile());
|
| @@ -108,9 +118,11 @@ void PowerPrefs::UpdatePowerPolicyFromPrefs() {
|
| const PrefService* prefs = pref_change_registrar_->prefs();
|
| PowerPolicyController::PrefValues values;
|
| values.ac_screen_dim_delay_ms =
|
| - prefs->GetInteger(prefs::kPowerAcScreenDimDelayMs);
|
| + prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenDimDelayMs :
|
| + prefs::kPowerAcScreenDimDelayMs);
|
| values.ac_screen_off_delay_ms =
|
| - prefs->GetInteger(prefs::kPowerAcScreenOffDelayMs);
|
| + prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenOffDelayMs :
|
| + prefs::kPowerAcScreenOffDelayMs);
|
| values.ac_screen_lock_delay_ms =
|
| prefs->GetInteger(prefs::kPowerAcScreenLockDelayMs);
|
| values.ac_idle_warning_delay_ms =
|
| @@ -118,9 +130,11 @@ void PowerPrefs::UpdatePowerPolicyFromPrefs() {
|
| values.ac_idle_delay_ms =
|
| prefs->GetInteger(prefs::kPowerAcIdleDelayMs);
|
| values.battery_screen_dim_delay_ms =
|
| - prefs->GetInteger(prefs::kPowerBatteryScreenDimDelayMs);
|
| + prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenDimDelayMs :
|
| + prefs::kPowerBatteryScreenDimDelayMs);
|
| values.battery_screen_off_delay_ms =
|
| - prefs->GetInteger(prefs::kPowerBatteryScreenOffDelayMs);
|
| + prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenOffDelayMs :
|
| + prefs::kPowerBatteryScreenOffDelayMs);
|
| values.battery_screen_lock_delay_ms =
|
| prefs->GetInteger(prefs::kPowerBatteryScreenLockDelayMs);
|
| values.battery_idle_warning_delay_ms =
|
| @@ -195,6 +209,14 @@ void PowerPrefs::RegisterProfilePrefs(
|
| 600000,
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| registry->RegisterIntegerPref(
|
| + prefs::kPowerLockScreenDimDelayMs,
|
| + 30000,
|
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterIntegerPref(
|
| + prefs::kPowerLockScreenOffDelayMs,
|
| + 40000,
|
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterIntegerPref(
|
| prefs::kPowerAcIdleAction,
|
| PowerPolicyController::ACTION_SUSPEND,
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| @@ -261,6 +283,10 @@ void PowerPrefs::SetProfile(Profile* profile) {
|
| pref_change_registrar_->Add(prefs::kPowerBatteryIdleWarningDelayMs,
|
| update_callback);
|
| pref_change_registrar_->Add(prefs::kPowerBatteryIdleDelayMs, update_callback);
|
| + pref_change_registrar_->Add(prefs::kPowerLockScreenDimDelayMs,
|
| + update_callback);
|
| + pref_change_registrar_->Add(prefs::kPowerLockScreenOffDelayMs,
|
| + update_callback);
|
| pref_change_registrar_->Add(prefs::kPowerAcIdleAction, update_callback);
|
| pref_change_registrar_->Add(prefs::kPowerBatteryIdleAction, update_callback);
|
| pref_change_registrar_->Add(prefs::kPowerLidClosedAction, update_callback);
|
|
|