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

Side by Side Diff: chrome/browser/chromeos/preferences.cc

Issue 18153007: Add policies to control power management on the Chrome OS login screen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit addressed. Created 7 years, 5 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 "ash/shell_delegate.h" 8 #include "ash/shell_delegate.h"
9 #include "base/chromeos/chromeos_version.h" 9 #include "base/chromeos/chromeos_version.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 12 matching lines...) Expand all
23 #include "chrome/browser/chromeos/login/user_manager.h" 23 #include "chrome/browser/chromeos/login/user_manager.h"
24 #include "chrome/browser/chromeos/system/input_device_settings.h" 24 #include "chrome/browser/chromeos/system/input_device_settings.h"
25 #include "chrome/browser/chromeos/system/statistics_provider.h" 25 #include "chrome/browser/chromeos/system/statistics_provider.h"
26 #include "chrome/browser/download/download_util.h" 26 #include "chrome/browser/download/download_util.h"
27 #include "chrome/browser/prefs/pref_service_syncable.h" 27 #include "chrome/browser/prefs/pref_service_syncable.h"
28 #include "chrome/browser/prefs/scoped_user_pref_update.h" 28 #include "chrome/browser/prefs/scoped_user_pref_update.h"
29 #include "chrome/common/chrome_notification_types.h" 29 #include "chrome/common/chrome_notification_types.h"
30 #include "chrome/common/chrome_switches.h" 30 #include "chrome/common/chrome_switches.h"
31 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
32 #include "chromeos/chromeos_switches.h" 32 #include "chromeos/chromeos_switches.h"
33 #include "chromeos/dbus/dbus_thread_manager.h"
34 #include "chromeos/dbus/power_policy_controller.h"
35 #include "chromeos/ime/input_method_manager.h" 33 #include "chromeos/ime/input_method_manager.h"
36 #include "chromeos/ime/xkeyboard.h" 34 #include "chromeos/ime/xkeyboard.h"
37 #include "components/user_prefs/pref_registry_syncable.h" 35 #include "components/user_prefs/pref_registry_syncable.h"
38 #include "googleurl/src/gurl.h" 36 #include "googleurl/src/gurl.h"
39 #include "third_party/icu/public/i18n/unicode/timezone.h" 37 #include "third_party/icu/public/i18n/unicode/timezone.h"
40 #include "ui/base/events/event_constants.h" 38 #include "ui/base/events/event_constants.h"
41 #include "ui/base/events/event_utils.h" 39 #include "ui/base/events/event_utils.h"
42 40
43 namespace chromeos { 41 namespace chromeos {
44 42
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 291 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
294 registry->RegisterIntegerPref( 292 registry->RegisterIntegerPref(
295 prefs::kLanguageXkbAutoRepeatDelay, 293 prefs::kLanguageXkbAutoRepeatDelay,
296 language_prefs::kXkbAutoRepeatDelayInMs, 294 language_prefs::kXkbAutoRepeatDelayInMs,
297 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 295 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
298 registry->RegisterIntegerPref( 296 registry->RegisterIntegerPref(
299 prefs::kLanguageXkbAutoRepeatInterval, 297 prefs::kLanguageXkbAutoRepeatInterval,
300 language_prefs::kXkbAutoRepeatIntervalInMs, 298 language_prefs::kXkbAutoRepeatIntervalInMs,
301 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 299 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
302 300
303 // Screen lock default to off.
304 registry->RegisterBooleanPref(
305 prefs::kEnableScreenLock,
306 false,
307 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
308
309 // Mobile plan notifications default to on. 301 // Mobile plan notifications default to on.
310 registry->RegisterBooleanPref( 302 registry->RegisterBooleanPref(
311 prefs::kShowPlanNotifications, 303 prefs::kShowPlanNotifications,
312 true, 304 true,
313 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 305 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
314 306
315 // 3G first-time usage promo will be shown at least once. 307 // 3G first-time usage promo will be shown at least once.
316 registry->RegisterBooleanPref( 308 registry->RegisterBooleanPref(
317 prefs::kShow3gPromoNotification, 309 prefs::kShow3gPromoNotification,
318 true, 310 true,
319 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 311 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
320 312
321 // Initially all existing users would see "What's new" for current version 313 // Initially all existing users would see "What's new" for current version
322 // after update. 314 // after update.
323 registry->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion, 315 registry->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion,
324 "0.0.0.0", 316 "0.0.0.0",
325 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 317 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
326 318
327 registry->RegisterBooleanPref( 319 registry->RegisterBooleanPref(
328 prefs::kExternalStorageDisabled, 320 prefs::kExternalStorageDisabled,
329 false, 321 false,
330 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 322 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
331 323
332 registry->RegisterIntegerPref(
333 prefs::kPowerAcScreenDimDelayMs,
334 420000,
335 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
336 registry->RegisterIntegerPref(
337 prefs::kPowerAcScreenOffDelayMs,
338 480000,
339 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
340 registry->RegisterIntegerPref(
341 prefs::kPowerAcScreenLockDelayMs,
342 0,
343 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
344 registry->RegisterIntegerPref(
345 prefs::kPowerAcIdleWarningDelayMs,
346 0,
347 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
348 registry->RegisterIntegerPref(
349 prefs::kPowerAcIdleDelayMs,
350 1800000,
351 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
352 registry->RegisterIntegerPref(
353 prefs::kPowerBatteryScreenDimDelayMs,
354 300000,
355 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
356 registry->RegisterIntegerPref(
357 prefs::kPowerBatteryScreenOffDelayMs,
358 360000,
359 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
360 registry->RegisterIntegerPref(
361 prefs::kPowerBatteryScreenLockDelayMs,
362 0,
363 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
364 registry->RegisterIntegerPref(
365 prefs::kPowerBatteryIdleWarningDelayMs,
366 0,
367 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
368 registry->RegisterIntegerPref(
369 prefs::kPowerBatteryIdleDelayMs,
370 600000,
371 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
372 registry->RegisterIntegerPref(
373 prefs::kPowerAcIdleAction,
374 PowerPolicyController::ACTION_SUSPEND,
375 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
376 registry->RegisterIntegerPref(
377 prefs::kPowerBatteryIdleAction,
378 PowerPolicyController::ACTION_SUSPEND,
379 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
380 registry->RegisterIntegerPref(
381 prefs::kPowerLidClosedAction,
382 PowerPolicyController::ACTION_SUSPEND,
383 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
384 registry->RegisterBooleanPref(
385 prefs::kPowerUseAudioActivity,
386 true,
387 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
388 registry->RegisterBooleanPref(
389 prefs::kPowerUseVideoActivity,
390 true,
391 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
392 registry->RegisterBooleanPref(
393 prefs::kPowerAllowScreenWakeLocks,
394 true,
395 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
396 registry->RegisterDoublePref(
397 prefs::kPowerPresentationScreenDimDelayFactor,
398 2.0,
399 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
400 registry->RegisterDoublePref(
401 prefs::kPowerUserActivityScreenDimDelayFactor,
402 2.0,
403 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
404
405 registry->RegisterStringPref( 324 registry->RegisterStringPref(
406 prefs::kTermsOfServiceURL, 325 prefs::kTermsOfServiceURL,
407 "", 326 "",
408 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 327 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
409 } 328 }
410 329
411 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { 330 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
412 prefs_ = prefs; 331 prefs_ = prefs;
413 332
414 BooleanPrefMember::NamedChangeCallback callback = 333 BooleanPrefMember::NamedChangeCallback callback =
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { 415 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) {
497 mozc_integer_prefs_[i].Init( 416 mozc_integer_prefs_[i].Init(
498 language_prefs::kMozcIntegerPrefs[i].pref_name, prefs, callback); 417 language_prefs::kMozcIntegerPrefs[i].pref_name, prefs, callback);
499 } 418 }
500 xkb_auto_repeat_enabled_.Init( 419 xkb_auto_repeat_enabled_.Init(
501 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); 420 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback);
502 xkb_auto_repeat_delay_pref_.Init( 421 xkb_auto_repeat_delay_pref_.Init(
503 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); 422 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback);
504 xkb_auto_repeat_interval_pref_.Init( 423 xkb_auto_repeat_interval_pref_.Init(
505 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); 424 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback);
506
507 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback);
508
509 power_ac_screen_dim_delay_ms_.Init(
510 prefs::kPowerAcScreenDimDelayMs, prefs, callback);
511 power_ac_screen_off_delay_ms_.Init(
512 prefs::kPowerAcScreenOffDelayMs, prefs, callback);
513 power_ac_screen_lock_delay_ms_.Init(
514 prefs::kPowerAcScreenLockDelayMs, prefs, callback);
515 power_ac_idle_warning_delay_ms_.Init(
516 prefs::kPowerAcIdleWarningDelayMs, prefs, callback);
517 power_ac_idle_delay_ms_.Init(prefs::kPowerAcIdleDelayMs, prefs, callback);
518 power_battery_screen_dim_delay_ms_.Init(
519 prefs::kPowerBatteryScreenDimDelayMs, prefs, callback);
520 power_battery_screen_off_delay_ms_.Init(
521 prefs::kPowerBatteryScreenOffDelayMs, prefs, callback);
522 power_battery_screen_lock_delay_ms_.Init(
523 prefs::kPowerBatteryScreenLockDelayMs, prefs, callback);
524 power_battery_idle_warning_delay_ms_.Init(
525 prefs::kPowerBatteryIdleWarningDelayMs, prefs, callback);
526 power_battery_idle_delay_ms_.Init(
527 prefs::kPowerBatteryIdleDelayMs, prefs, callback);
528 power_ac_idle_action_.Init(prefs::kPowerAcIdleAction, prefs, callback);
529 power_battery_idle_action_.Init(
530 prefs::kPowerBatteryIdleAction, prefs, callback);
531 power_lid_closed_action_.Init(prefs::kPowerLidClosedAction, prefs, callback);
532 power_use_audio_activity_.Init(
533 prefs::kPowerUseAudioActivity, prefs, callback);
534 power_use_video_activity_.Init(
535 prefs::kPowerUseVideoActivity, prefs, callback);
536 power_allow_screen_wake_locks_.Init(
537 prefs::kPowerAllowScreenWakeLocks, prefs, callback);
538 power_presentation_screen_dim_delay_factor_.Init(
539 prefs::kPowerPresentationScreenDimDelayFactor, prefs, callback);
540 power_user_activity_screen_dim_delay_factor_.Init(
541 prefs::kPowerUserActivityScreenDimDelayFactor, prefs, callback);
542 } 425 }
543 426
544 void Preferences::Init(PrefServiceSyncable* prefs) { 427 void Preferences::Init(PrefServiceSyncable* prefs) {
545 InitUserPrefs(prefs); 428 InitUserPrefs(prefs);
546 429
547 // This causes OnIsSyncingChanged to be called when the value of 430 // This causes OnIsSyncingChanged to be called when the value of
548 // PrefService::IsSyncing() changes. 431 // PrefService::IsSyncing() changes.
549 prefs->AddObserver(this); 432 prefs->AddObserver(this);
550 433
551 // Initialize preferences to currently saved state. 434 // Initialize preferences to currently saved state.
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 // selected and Drive is disabled. 721 // selected and Drive is disabled.
839 if (!pref_name || *pref_name == prefs::kDisableDrive) { 722 if (!pref_name || *pref_name == prefs::kDisableDrive) {
840 if (disable_drive_.GetValue()) { 723 if (disable_drive_.GetValue()) {
841 if (drive::util::IsUnderDriveMountPoint( 724 if (drive::util::IsUnderDriveMountPoint(
842 download_default_directory_.GetValue())) { 725 download_default_directory_.GetValue())) {
843 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, 726 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory,
844 download_util::GetDefaultDownloadDirectory()); 727 download_util::GetDefaultDownloadDirectory());
845 } 728 }
846 } 729 }
847 } 730 }
848
849 if (!pref_name ||
850 *pref_name == prefs::kPowerAcScreenDimDelayMs ||
851 *pref_name == prefs::kPowerAcScreenOffDelayMs ||
852 *pref_name == prefs::kPowerAcScreenLockDelayMs ||
853 *pref_name == prefs::kPowerAcIdleWarningDelayMs ||
854 *pref_name == prefs::kPowerAcIdleDelayMs ||
855 *pref_name == prefs::kPowerBatteryScreenDimDelayMs ||
856 *pref_name == prefs::kPowerBatteryScreenOffDelayMs ||
857 *pref_name == prefs::kPowerBatteryScreenLockDelayMs ||
858 *pref_name == prefs::kPowerBatteryIdleWarningDelayMs ||
859 *pref_name == prefs::kPowerBatteryIdleDelayMs ||
860 *pref_name == prefs::kPowerAcIdleAction ||
861 *pref_name == prefs::kPowerBatteryIdleAction ||
862 *pref_name == prefs::kPowerLidClosedAction ||
863 *pref_name == prefs::kPowerUseAudioActivity ||
864 *pref_name == prefs::kPowerUseVideoActivity ||
865 *pref_name == prefs::kPowerAllowScreenWakeLocks ||
866 *pref_name == prefs::kPowerPresentationScreenDimDelayFactor ||
867 *pref_name == prefs::kPowerUserActivityScreenDimDelayFactor ||
868 *pref_name == prefs::kEnableScreenLock) {
869 PowerPolicyController::PrefValues values;
870 values.ac_screen_dim_delay_ms = power_ac_screen_dim_delay_ms_.GetValue();
871 values.ac_screen_off_delay_ms = power_ac_screen_off_delay_ms_.GetValue();
872 values.ac_screen_lock_delay_ms = power_ac_screen_lock_delay_ms_.GetValue();
873 values.ac_idle_warning_delay_ms =
874 power_ac_idle_warning_delay_ms_.GetValue();
875 values.ac_idle_delay_ms = power_ac_idle_delay_ms_.GetValue();
876 values.battery_screen_dim_delay_ms =
877 power_battery_screen_dim_delay_ms_.GetValue();
878 values.battery_screen_off_delay_ms =
879 power_battery_screen_off_delay_ms_.GetValue();
880 values.battery_screen_lock_delay_ms =
881 power_battery_screen_lock_delay_ms_.GetValue();
882 values.battery_idle_warning_delay_ms =
883 power_battery_idle_warning_delay_ms_.GetValue();
884 values.battery_idle_delay_ms = power_battery_idle_delay_ms_.GetValue();
885 values.ac_idle_action = static_cast<PowerPolicyController::Action>(
886 power_ac_idle_action_.GetValue());
887 values.battery_idle_action = static_cast<PowerPolicyController::Action>(
888 power_battery_idle_action_.GetValue());
889 values.lid_closed_action = static_cast<PowerPolicyController::Action>(
890 power_lid_closed_action_.GetValue());
891 values.use_audio_activity = power_use_audio_activity_.GetValue();
892 values.use_video_activity = power_use_video_activity_.GetValue();
893 values.allow_screen_wake_locks = power_allow_screen_wake_locks_.GetValue();
894 values.enable_screen_lock = enable_screen_lock_.GetValue();
895 values.presentation_screen_dim_delay_factor =
896 power_presentation_screen_dim_delay_factor_.GetValue();
897 values.user_activity_screen_dim_delay_factor =
898 power_user_activity_screen_dim_delay_factor_.GetValue();
899
900 DBusThreadManager::Get()->GetPowerPolicyController()->ApplyPrefs(values);
901 }
902 } 731 }
903 732
904 void Preferences::OnIsSyncingChanged() { 733 void Preferences::OnIsSyncingChanged() {
905 DVLOG(1) << "OnIsSyncingChanged"; 734 DVLOG(1) << "OnIsSyncingChanged";
906 ForceNaturalScrollDefault(); 735 ForceNaturalScrollDefault();
907 } 736 }
908 737
909 void Preferences::ForceNaturalScrollDefault() { 738 void Preferences::ForceNaturalScrollDefault() {
910 DVLOG(1) << "ForceNaturalScrollDefault"; 739 DVLOG(1) << "ForceNaturalScrollDefault";
911 if (CommandLine::ForCurrentProcess()->HasSwitch( 740 if (CommandLine::ForCurrentProcess()->HasSwitch(
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 842
1014 input_method::AutoRepeatRate rate; 843 input_method::AutoRepeatRate rate;
1015 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); 844 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue();
1016 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); 845 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue();
1017 DCHECK(rate.initial_delay_in_ms > 0); 846 DCHECK(rate.initial_delay_in_ms > 0);
1018 DCHECK(rate.repeat_interval_in_ms > 0); 847 DCHECK(rate.repeat_interval_in_ms > 0);
1019 input_method::XKeyboard::SetAutoRepeatRate(rate); 848 input_method::XKeyboard::SetAutoRepeatRate(rate);
1020 } 849 }
1021 850
1022 } // namespace chromeos 851 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698