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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/preferences.h" 5 #include "chrome/browser/chromeos/preferences.h"
6 6
7 #include "ash/magnifier/magnifier_constants.h" 7 #include "ash/magnifier/magnifier_constants.h"
8 #include "base/chromeos/chromeos_version.h" 8 #include "base/chromeos/chromeos_version.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/i18n/time_formatting.h" 10 #include "base/i18n/time_formatting.h"
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/chromeos/system/drm_settings.h" 25 #include "chrome/browser/chromeos/system/drm_settings.h"
26 #include "chrome/browser/chromeos/system/input_device_settings.h" 26 #include "chrome/browser/chromeos/system/input_device_settings.h"
27 #include "chrome/browser/chromeos/system/power_manager_settings.h" 27 #include "chrome/browser/chromeos/system/power_manager_settings.h"
28 #include "chrome/browser/chromeos/system/statistics_provider.h" 28 #include "chrome/browser/chromeos/system/statistics_provider.h"
29 #include "chrome/browser/download/download_util.h" 29 #include "chrome/browser/download/download_util.h"
30 #include "chrome/browser/prefs/pref_service.h" 30 #include "chrome/browser/prefs/pref_service.h"
31 #include "chrome/browser/prefs/scoped_user_pref_update.h" 31 #include "chrome/browser/prefs/scoped_user_pref_update.h"
32 #include "chrome/common/chrome_notification_types.h" 32 #include "chrome/common/chrome_notification_types.h"
33 #include "chrome/common/chrome_switches.h" 33 #include "chrome/common/chrome_switches.h"
34 #include "chrome/common/pref_names.h" 34 #include "chrome/common/pref_names.h"
35 #include "chromeos/dbus/dbus_thread_manager.h"
36 #include "chromeos/dbus/power_policy_controller.h"
35 #include "googleurl/src/gurl.h" 37 #include "googleurl/src/gurl.h"
36 #include "third_party/icu/public/i18n/unicode/timezone.h" 38 #include "third_party/icu/public/i18n/unicode/timezone.h"
37 #include "ui/base/events/event_constants.h" 39 #include "ui/base/events/event_constants.h"
38 #include "ui/base/events/event_utils.h" 40 #include "ui/base/events/event_utils.h"
39 41
40 namespace chromeos { 42 namespace chromeos {
41 43
42 static const char kFallbackInputMethodLocale[] = "en-US"; 44 static const char kFallbackInputMethodLocale[] = "en-US";
43 45
44 Preferences::Preferences() 46 Preferences::Preferences()
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 291
290 // TODO(wad): Once UI is connected, a final default can be set. At that point 292 // TODO(wad): Once UI is connected, a final default can be set. At that point
291 // change this pref from UNSYNCABLE to SYNCABLE. 293 // change this pref from UNSYNCABLE to SYNCABLE.
292 prefs->RegisterBooleanPref(prefs::kEnableCrosDRM, 294 prefs->RegisterBooleanPref(prefs::kEnableCrosDRM,
293 true, 295 true,
294 PrefServiceSyncable::UNSYNCABLE_PREF); 296 PrefServiceSyncable::UNSYNCABLE_PREF);
295 297
296 prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, 298 prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled,
297 false, 299 false,
298 PrefServiceSyncable::UNSYNCABLE_PREF); 300 PrefServiceSyncable::UNSYNCABLE_PREF);
301
302 prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs,
303 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
304 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,
305 prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs,
306 chromeos::PowerPolicyController::kUnsetDelayMs,
307 PrefServiceSyncable::UNSYNCABLE_PREF);
308 prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs,
309 chromeos::PowerPolicyController::kUnsetDelayMs,
310 PrefServiceSyncable::UNSYNCABLE_PREF);
311 prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs,
312 chromeos::PowerPolicyController::kUnsetDelayMs,
313 PrefServiceSyncable::UNSYNCABLE_PREF);
314 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs,
315 chromeos::PowerPolicyController::kUnsetDelayMs,
316 PrefServiceSyncable::UNSYNCABLE_PREF);
317 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs,
318 chromeos::PowerPolicyController::kUnsetDelayMs,
319 PrefServiceSyncable::UNSYNCABLE_PREF);
320 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs,
321 chromeos::PowerPolicyController::kUnsetDelayMs,
322 PrefServiceSyncable::UNSYNCABLE_PREF);
323 prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs,
324 chromeos::PowerPolicyController::kUnsetDelayMs,
325 PrefServiceSyncable::UNSYNCABLE_PREF);
326 prefs->RegisterIntegerPref(prefs::kPowerIdleAction,
327 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
328 PrefServiceSyncable::UNSYNCABLE_PREF);
329 prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction,
330 chromeos::PowerPolicyController::ACTION_UNSET,
331 PrefServiceSyncable::UNSYNCABLE_PREF);
332 prefs->RegisterIntegerPref(prefs::kPowerUseAudioActivity,
333 chromeos::PowerPolicyController::BOOL_UNSET,
334 PrefServiceSyncable::UNSYNCABLE_PREF);
335 prefs->RegisterIntegerPref(prefs::kPowerUseVideoActivity,
336 chromeos::PowerPolicyController::BOOL_UNSET,
337 PrefServiceSyncable::UNSYNCABLE_PREF);
338 prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor,
339 chromeos::PowerPolicyController::
340 kUnsetPresentationIdleDelayFactor,
341 PrefServiceSyncable::UNSYNCABLE_PREF);
299 } 342 }
300 343
301 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { 344 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
302 prefs_ = prefs; 345 prefs_ = prefs;
303 346
304 BooleanPrefMember::NamedChangeCallback callback = 347 BooleanPrefMember::NamedChangeCallback callback =
305 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); 348 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this));
306 349
307 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); 350 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback);
308 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); 351 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 xkb_auto_repeat_enabled_.Init( 424 xkb_auto_repeat_enabled_.Init(
382 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); 425 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback);
383 xkb_auto_repeat_delay_pref_.Init( 426 xkb_auto_repeat_delay_pref_.Init(
384 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); 427 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback);
385 xkb_auto_repeat_interval_pref_.Init( 428 xkb_auto_repeat_interval_pref_.Init(
386 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); 429 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback);
387 430
388 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); 431 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback);
389 432
390 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); 433 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback);
434
435 power_ac_screen_dim_delay_ms_pref_.Init(
436 prefs::kPowerAcScreenDimDelayMs, prefs, callback);
437 power_ac_screen_off_delay_ms_pref_.Init(
438 prefs::kPowerAcScreenOffDelayMs, prefs, callback);
439 power_ac_screen_lock_delay_ms_pref_.Init(
440 prefs::kPowerAcScreenLockDelayMs, prefs, callback);
441 power_ac_idle_delay_ms_pref_.Init(
442 prefs::kPowerAcIdleDelayMs, prefs, callback);
443 power_battery_screen_dim_delay_ms_pref_.Init(
444 prefs::kPowerBatteryScreenDimDelayMs, prefs, callback);
445 power_battery_screen_off_delay_ms_pref_.Init(
446 prefs::kPowerBatteryScreenOffDelayMs, prefs, callback);
447 power_battery_screen_lock_delay_ms_pref_.Init(
448 prefs::kPowerBatteryScreenLockDelayMs, prefs, callback);
449 power_battery_idle_delay_ms_pref_.Init(
450 prefs::kPowerBatteryIdleDelayMs, prefs, callback);
451 power_idle_action_pref_.Init(prefs::kPowerIdleAction, prefs, callback);
452 power_lid_closed_action_pref_.Init(
453 prefs::kPowerLidClosedAction, prefs, callback);
454 power_use_audio_activity_pref_.Init(
455 prefs::kPowerUseAudioActivity, prefs, callback);
456 power_use_video_activity_pref_.Init(
457 prefs::kPowerUseVideoActivity, prefs, callback);
458 power_presentation_idle_delay_factor_pref_.Init(
459 prefs::kPowerPresentationIdleDelayFactor, prefs, callback);
391 } 460 }
392 461
393 void Preferences::Init(PrefServiceSyncable* prefs) { 462 void Preferences::Init(PrefServiceSyncable* prefs) {
394 InitUserPrefs(prefs); 463 InitUserPrefs(prefs);
395 464
396 // This causes OnIsSyncingChanged to be called when the value of 465 // This causes OnIsSyncingChanged to be called when the value of
397 // PrefService::IsSyncing() changes. 466 // PrefService::IsSyncing() changes.
398 prefs->AddObserver(this); 467 prefs->AddObserver(this);
399 468
400 // Initialize preferences to currently saved state. 469 // Initialize preferences to currently saved state.
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 // selected and Drive is disabled. 740 // selected and Drive is disabled.
672 if (!pref_name || *pref_name == prefs::kDisableDrive) { 741 if (!pref_name || *pref_name == prefs::kDisableDrive) {
673 if (disable_drive_.GetValue()) { 742 if (disable_drive_.GetValue()) {
674 if (drive::util::IsUnderDriveMountPoint( 743 if (drive::util::IsUnderDriveMountPoint(
675 download_default_directory_.GetValue())) { 744 download_default_directory_.GetValue())) {
676 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, 745 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory,
677 download_util::GetDefaultDownloadDirectory()); 746 download_util::GetDefaultDownloadDirectory());
678 } 747 }
679 } 748 }
680 } 749 }
750
751 if (!pref_name ||
752 *pref_name == prefs::kPowerAcScreenDimDelayMs ||
753 *pref_name == prefs::kPowerAcScreenOffDelayMs ||
754 *pref_name == prefs::kPowerAcScreenLockDelayMs ||
755 *pref_name == prefs::kPowerAcIdleDelayMs ||
756 *pref_name == prefs::kPowerBatteryScreenDimDelayMs ||
757 *pref_name == prefs::kPowerBatteryScreenOffDelayMs ||
758 *pref_name == prefs::kPowerBatteryScreenLockDelayMs ||
759 *pref_name == prefs::kPowerBatteryIdleDelayMs ||
760 *pref_name == prefs::kPowerIdleAction ||
761 *pref_name == prefs::kPowerLidClosedAction ||
762 *pref_name == prefs::kPowerUseAudioActivity ||
763 *pref_name == prefs::kPowerUseVideoActivity ||
764 *pref_name == prefs::kPowerPresentationIdleDelayFactor)
765 UpdatePowerManagementPolicy();
766
681 } 767 }
682 768
683 void Preferences::OnIsSyncingChanged() { 769 void Preferences::OnIsSyncingChanged() {
684 DVLOG(1) << "OnIsSyncingChanged"; 770 DVLOG(1) << "OnIsSyncingChanged";
685 ForceNaturalScrollDefault(); 771 ForceNaturalScrollDefault();
686 } 772 }
687 773
688 void Preferences::ForceNaturalScrollDefault() { 774 void Preferences::ForceNaturalScrollDefault() {
689 DVLOG(1) << "ForceNaturalScrollDefault"; 775 DVLOG(1) << "ForceNaturalScrollDefault";
690 if (CommandLine::ForCurrentProcess()->HasSwitch( 776 if (CommandLine::ForCurrentProcess()->HasSwitch(
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 return; 873 return;
788 874
789 input_method::AutoRepeatRate rate; 875 input_method::AutoRepeatRate rate;
790 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); 876 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue();
791 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); 877 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue();
792 DCHECK(rate.initial_delay_in_ms > 0); 878 DCHECK(rate.initial_delay_in_ms > 0);
793 DCHECK(rate.repeat_interval_in_ms > 0); 879 DCHECK(rate.repeat_interval_in_ms > 0);
794 input_method::XKeyboard::SetAutoRepeatRate(rate); 880 input_method::XKeyboard::SetAutoRepeatRate(rate);
795 } 881 }
796 882
883 void Preferences::UpdatePowerManagementPolicy() {
884 PowerPolicyController::PolicyPrefs policy;
885
886 policy.ac_screen_dim_delay = base::TimeDelta::FromMilliseconds(
887 power_ac_screen_dim_delay_ms_pref_.GetValue());
888 policy.ac_screen_off_delay = base::TimeDelta::FromMilliseconds(
889 power_ac_screen_off_delay_ms_pref_.GetValue());
890 policy.ac_screen_lock_delay = base::TimeDelta::FromMilliseconds(
891 power_ac_screen_lock_delay_ms_pref_.GetValue());
892 policy.ac_idle_delay = base::TimeDelta::FromMilliseconds(
893 power_ac_idle_delay_ms_pref_.GetValue());
894
895 policy.battery_screen_dim_delay = base::TimeDelta::FromMilliseconds(
896 power_battery_screen_dim_delay_ms_pref_.GetValue());
897 policy.battery_screen_off_delay = base::TimeDelta::FromMilliseconds(
898 power_battery_screen_off_delay_ms_pref_.GetValue());
899 policy.battery_screen_lock_delay = base::TimeDelta::FromMilliseconds(
900 power_battery_screen_lock_delay_ms_pref_.GetValue());
901 policy.battery_idle_delay = base::TimeDelta::FromMilliseconds(
902 power_battery_idle_delay_ms_pref_.GetValue());
903
904 policy.idle_action = static_cast<PowerPolicyController::OptionalAction>(
905 power_idle_action_pref_.GetValue());
906 policy.lid_closed_action = static_cast<PowerPolicyController::OptionalAction>(
907 power_lid_closed_action_pref_.GetValue());
908
909 policy.use_audio_activity = static_cast<PowerPolicyController::OptionalBool>(
910 power_use_audio_activity_pref_.GetValue());
911 policy.use_video_activity = static_cast<PowerPolicyController::OptionalBool>(
912 power_use_video_activity_pref_.GetValue());
913 policy.presentation_idle_delay_factor =
914 power_presentation_idle_delay_factor_pref_.GetValue();
915
916 DBusThreadManager::Get()->GetPowerPolicyController()->UpdatePolicyFromPrefs(
917 policy);
918 }
919
797 } // namespace chromeos 920 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698