Index: chrome/browser/chromeos/preferences.cc |
diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc |
index 7f5233f748fff1f5c3ac287cd54187696f8630cf..cf036d211f0e108ce387ff893ea8d636a2309652 100644 |
--- a/chrome/browser/chromeos/preferences.cc |
+++ b/chrome/browser/chromeos/preferences.cc |
@@ -32,6 +32,8 @@ |
#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/pref_names.h" |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/dbus/power_policy_controller.h" |
#include "googleurl/src/gurl.h" |
#include "third_party/icu/public/i18n/unicode/timezone.h" |
#include "ui/base/events/event_constants.h" |
@@ -296,6 +298,53 @@ void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { |
prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, |
false, |
PrefServiceSyncable::UNSYNCABLE_PREF); |
+ |
+ // TODO(derat): Right now, these values are just copied from powerd's |
+ // defaults. Make this file be the canonical source of default power |
+ // management settings. Note that these prefs' default values aren't |
+ // currently expressive enough to convey powerd's default behavior, e.g. |
+ // powerd shuts down instead of suspending when no user is logged in, and |
+ // the default screen-lock delays are only used when |
+ // prefs::kEnableScreenLock is set. |
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, |
+ 420000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, |
+ 480000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, |
+ 600000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, |
+ 1800000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, |
+ 300000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, |
+ 360000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, |
+ 600000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, |
+ 600000, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerIdleAction, |
+ chromeos::PowerPolicyController::ACTION_SUSPEND, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction, |
+ chromeos::PowerPolicyController::ACTION_SUSPEND, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerUseAudioActivity, |
+ true, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kPowerUseVideoActivity, |
+ true, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
+ prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, |
+ 2.0, |
+ PrefServiceSyncable::UNSYNCABLE_PREF); |
} |
void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
@@ -388,6 +437,30 @@ void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); |
enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); |
+ |
+ power_ac_screen_dim_delay_ms_.Init( |
+ prefs::kPowerAcScreenDimDelayMs, prefs, callback); |
+ power_ac_screen_off_delay_ms_.Init( |
+ prefs::kPowerAcScreenOffDelayMs, prefs, callback); |
+ power_ac_screen_lock_delay_ms_.Init( |
+ prefs::kPowerAcScreenLockDelayMs, prefs, callback); |
+ power_ac_idle_delay_ms_.Init(prefs::kPowerAcIdleDelayMs, prefs, callback); |
+ power_battery_screen_dim_delay_ms_.Init( |
+ prefs::kPowerBatteryScreenDimDelayMs, prefs, callback); |
+ power_battery_screen_off_delay_ms_.Init( |
+ prefs::kPowerBatteryScreenOffDelayMs, prefs, callback); |
+ power_battery_screen_lock_delay_ms_.Init( |
+ prefs::kPowerBatteryScreenLockDelayMs, prefs, callback); |
+ power_battery_idle_delay_ms_.Init( |
+ prefs::kPowerBatteryIdleDelayMs, prefs, callback); |
+ power_idle_action_.Init(prefs::kPowerIdleAction, prefs, callback); |
+ power_lid_closed_action_.Init(prefs::kPowerLidClosedAction, prefs, callback); |
+ power_use_audio_activity_.Init( |
+ prefs::kPowerUseAudioActivity, prefs, callback); |
+ power_use_video_activity_.Init( |
+ prefs::kPowerUseVideoActivity, prefs, callback); |
+ power_presentation_idle_delay_factor_.Init( |
+ prefs::kPowerPresentationIdleDelayFactor, prefs, callback); |
} |
void Preferences::Init(PrefServiceSyncable* prefs) { |
@@ -678,6 +751,36 @@ void Preferences::NotifyPrefChanged(const std::string* pref_name) { |
} |
} |
} |
+ |
+ if (!pref_name || |
+ *pref_name == prefs::kPowerAcScreenDimDelayMs || |
+ *pref_name == prefs::kPowerAcScreenOffDelayMs || |
+ *pref_name == prefs::kPowerAcScreenLockDelayMs || |
+ *pref_name == prefs::kPowerAcIdleDelayMs || |
+ *pref_name == prefs::kPowerBatteryScreenDimDelayMs || |
+ *pref_name == prefs::kPowerBatteryScreenOffDelayMs || |
+ *pref_name == prefs::kPowerBatteryScreenLockDelayMs || |
+ *pref_name == prefs::kPowerBatteryIdleDelayMs || |
+ *pref_name == prefs::kPowerIdleAction || |
+ *pref_name == prefs::kPowerLidClosedAction || |
+ *pref_name == prefs::kPowerUseAudioActivity || |
+ *pref_name == prefs::kPowerUseVideoActivity || |
+ *pref_name == prefs::kPowerPresentationIdleDelayFactor) { |
+ DBusThreadManager::Get()->GetPowerPolicyController()->UpdatePolicyFromPrefs( |
+ *prefs_->FindPreference(prefs::kPowerAcScreenDimDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerAcScreenOffDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerAcScreenLockDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerAcIdleDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerBatteryScreenDimDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerBatteryScreenOffDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerBatteryScreenLockDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerBatteryIdleDelayMs), |
+ *prefs_->FindPreference(prefs::kPowerIdleAction), |
+ *prefs_->FindPreference(prefs::kPowerLidClosedAction), |
+ *prefs_->FindPreference(prefs::kPowerUseAudioActivity), |
+ *prefs_->FindPreference(prefs::kPowerUseVideoActivity), |
+ *prefs_->FindPreference(prefs::kPowerPresentationIdleDelayFactor)); |
+ } |
} |
void Preferences::OnIsSyncingChanged() { |