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

Unified Diff: chrome/browser/chromeos/preferences.cc

Issue 12186010: chromeos: Add power management policy prefs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/preferences.cc
diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc
index 7f5233f748fff1f5c3ac287cd54187696f8630cf..ab0e21acc10147f8c3e14635678ea28bfe03d902 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,47 @@ void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) {
prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled,
false,
PrefServiceSyncable::UNSYNCABLE_PREF);
+
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
bartfab (slow) 2013/02/04 10:04:35 You do not need magic value constants such as "kUn
Daniel Erat 2013/02/04 13:35:45 Sure, I'll update this. I didn't realize that IsD
bartfab (slow) 2013/02/04 14:43:52 That's perfect. And yes, the issue will not arise
+ PrefServiceSyncable::UNSYNCABLE_PREF);
Daniel Erat 2013/02/04 03:10:07 I'm assuming that none of these should be synced,
bartfab (slow) 2013/02/04 10:04:35 I'd agree. If you have multiple Chrome OS devices,
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs,
+ chromeos::PowerPolicyController::kUnsetDelayMs,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerIdleAction,
+ chromeos::PowerPolicyController::ACTION_UNSET,
Daniel Erat 2013/02/04 03:10:07 Will the enterprise code automatically reset all o
bartfab (slow) 2013/02/04 10:04:35 Yes. When a policy is removed, any prefs controlle
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction,
+ chromeos::PowerPolicyController::ACTION_UNSET,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerUseAudioActivity,
+ chromeos::PowerPolicyController::BOOL_UNSET,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterIntegerPref(prefs::kPowerUseVideoActivity,
+ chromeos::PowerPolicyController::BOOL_UNSET,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
+ prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor,
+ chromeos::PowerPolicyController::
+ kUnsetPresentationIdleDelayFactor,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
}
void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
@@ -388,6 +431,32 @@ 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_pref_.Init(
+ prefs::kPowerAcScreenDimDelayMs, prefs, callback);
+ power_ac_screen_off_delay_ms_pref_.Init(
+ prefs::kPowerAcScreenOffDelayMs, prefs, callback);
+ power_ac_screen_lock_delay_ms_pref_.Init(
+ prefs::kPowerAcScreenLockDelayMs, prefs, callback);
+ power_ac_idle_delay_ms_pref_.Init(
+ prefs::kPowerAcIdleDelayMs, prefs, callback);
+ power_battery_screen_dim_delay_ms_pref_.Init(
+ prefs::kPowerBatteryScreenDimDelayMs, prefs, callback);
+ power_battery_screen_off_delay_ms_pref_.Init(
+ prefs::kPowerBatteryScreenOffDelayMs, prefs, callback);
+ power_battery_screen_lock_delay_ms_pref_.Init(
+ prefs::kPowerBatteryScreenLockDelayMs, prefs, callback);
+ power_battery_idle_delay_ms_pref_.Init(
+ prefs::kPowerBatteryIdleDelayMs, prefs, callback);
+ power_idle_action_pref_.Init(prefs::kPowerIdleAction, prefs, callback);
+ power_lid_closed_action_pref_.Init(
+ prefs::kPowerLidClosedAction, prefs, callback);
+ power_use_audio_activity_pref_.Init(
+ prefs::kPowerUseAudioActivity, prefs, callback);
+ power_use_video_activity_pref_.Init(
+ prefs::kPowerUseVideoActivity, prefs, callback);
+ power_presentation_idle_delay_factor_pref_.Init(
+ prefs::kPowerPresentationIdleDelayFactor, prefs, callback);
}
void Preferences::Init(PrefServiceSyncable* prefs) {
@@ -678,6 +747,23 @@ 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)
+ UpdatePowerManagementPolicy();
+
}
void Preferences::OnIsSyncingChanged() {
@@ -794,4 +880,41 @@ void Preferences::UpdateAutoRepeatRate() {
input_method::XKeyboard::SetAutoRepeatRate(rate);
}
+void Preferences::UpdatePowerManagementPolicy() {
+ PowerPolicyController::PolicyPrefs policy;
+
+ policy.ac_screen_dim_delay = base::TimeDelta::FromMilliseconds(
+ power_ac_screen_dim_delay_ms_pref_.GetValue());
+ policy.ac_screen_off_delay = base::TimeDelta::FromMilliseconds(
+ power_ac_screen_off_delay_ms_pref_.GetValue());
+ policy.ac_screen_lock_delay = base::TimeDelta::FromMilliseconds(
+ power_ac_screen_lock_delay_ms_pref_.GetValue());
+ policy.ac_idle_delay = base::TimeDelta::FromMilliseconds(
+ power_ac_idle_delay_ms_pref_.GetValue());
+
+ policy.battery_screen_dim_delay = base::TimeDelta::FromMilliseconds(
+ power_battery_screen_dim_delay_ms_pref_.GetValue());
+ policy.battery_screen_off_delay = base::TimeDelta::FromMilliseconds(
+ power_battery_screen_off_delay_ms_pref_.GetValue());
+ policy.battery_screen_lock_delay = base::TimeDelta::FromMilliseconds(
+ power_battery_screen_lock_delay_ms_pref_.GetValue());
+ policy.battery_idle_delay = base::TimeDelta::FromMilliseconds(
+ power_battery_idle_delay_ms_pref_.GetValue());
+
+ policy.idle_action = static_cast<PowerPolicyController::OptionalAction>(
+ power_idle_action_pref_.GetValue());
+ policy.lid_closed_action = static_cast<PowerPolicyController::OptionalAction>(
+ power_lid_closed_action_pref_.GetValue());
+
+ policy.use_audio_activity = static_cast<PowerPolicyController::OptionalBool>(
+ power_use_audio_activity_pref_.GetValue());
+ policy.use_video_activity = static_cast<PowerPolicyController::OptionalBool>(
+ power_use_video_activity_pref_.GetValue());
+ policy.presentation_idle_delay_factor =
+ power_presentation_idle_delay_factor_pref_.GetValue();
+
+ DBusThreadManager::Get()->GetPowerPolicyController()->UpdatePolicyFromPrefs(
+ policy);
+}
+
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698