OLD | NEW |
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 Loading... |
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 Loading... |
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 // TODO(derat): Right now, these values are just copied from powerd's |
| 303 // defaults. Make this file be the canonical source of default power |
| 304 // management settings. Note that these prefs' default values aren't |
| 305 // currently expressive enough to convey powerd's default behavior, e.g. |
| 306 // powerd shuts down instead of suspending when no user is logged in, and |
| 307 // the default screen-lock delays are only used when |
| 308 // prefs::kEnableScreenLock is set. |
| 309 prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, |
| 310 420000, |
| 311 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 312 prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, |
| 313 480000, |
| 314 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 315 prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, |
| 316 600000, |
| 317 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 318 prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, |
| 319 1800000, |
| 320 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 321 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, |
| 322 300000, |
| 323 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 324 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, |
| 325 360000, |
| 326 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 327 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, |
| 328 600000, |
| 329 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 330 prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, |
| 331 600000, |
| 332 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 333 prefs->RegisterIntegerPref(prefs::kPowerIdleAction, |
| 334 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 335 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 336 prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction, |
| 337 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 338 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 339 prefs->RegisterBooleanPref(prefs::kPowerUseAudioActivity, |
| 340 true, |
| 341 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 342 prefs->RegisterBooleanPref(prefs::kPowerUseVideoActivity, |
| 343 true, |
| 344 PrefServiceSyncable::UNSYNCABLE_PREF); |
| 345 prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, |
| 346 2.0, |
| 347 PrefServiceSyncable::UNSYNCABLE_PREF); |
299 } | 348 } |
300 | 349 |
301 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { | 350 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
302 prefs_ = prefs; | 351 prefs_ = prefs; |
303 | 352 |
304 BooleanPrefMember::NamedChangeCallback callback = | 353 BooleanPrefMember::NamedChangeCallback callback = |
305 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); | 354 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); |
306 | 355 |
307 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); | 356 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); |
308 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); | 357 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 xkb_auto_repeat_enabled_.Init( | 430 xkb_auto_repeat_enabled_.Init( |
382 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); | 431 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); |
383 xkb_auto_repeat_delay_pref_.Init( | 432 xkb_auto_repeat_delay_pref_.Init( |
384 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); | 433 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); |
385 xkb_auto_repeat_interval_pref_.Init( | 434 xkb_auto_repeat_interval_pref_.Init( |
386 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); | 435 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); |
387 | 436 |
388 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); | 437 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); |
389 | 438 |
390 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); | 439 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); |
| 440 |
| 441 power_ac_screen_dim_delay_ms_.Init( |
| 442 prefs::kPowerAcScreenDimDelayMs, prefs, callback); |
| 443 power_ac_screen_off_delay_ms_.Init( |
| 444 prefs::kPowerAcScreenOffDelayMs, prefs, callback); |
| 445 power_ac_screen_lock_delay_ms_.Init( |
| 446 prefs::kPowerAcScreenLockDelayMs, prefs, callback); |
| 447 power_ac_idle_delay_ms_.Init(prefs::kPowerAcIdleDelayMs, prefs, callback); |
| 448 power_battery_screen_dim_delay_ms_.Init( |
| 449 prefs::kPowerBatteryScreenDimDelayMs, prefs, callback); |
| 450 power_battery_screen_off_delay_ms_.Init( |
| 451 prefs::kPowerBatteryScreenOffDelayMs, prefs, callback); |
| 452 power_battery_screen_lock_delay_ms_.Init( |
| 453 prefs::kPowerBatteryScreenLockDelayMs, prefs, callback); |
| 454 power_battery_idle_delay_ms_.Init( |
| 455 prefs::kPowerBatteryIdleDelayMs, prefs, callback); |
| 456 power_idle_action_.Init(prefs::kPowerIdleAction, prefs, callback); |
| 457 power_lid_closed_action_.Init(prefs::kPowerLidClosedAction, prefs, callback); |
| 458 power_use_audio_activity_.Init( |
| 459 prefs::kPowerUseAudioActivity, prefs, callback); |
| 460 power_use_video_activity_.Init( |
| 461 prefs::kPowerUseVideoActivity, prefs, callback); |
| 462 power_presentation_idle_delay_factor_.Init( |
| 463 prefs::kPowerPresentationIdleDelayFactor, prefs, callback); |
391 } | 464 } |
392 | 465 |
393 void Preferences::Init(PrefServiceSyncable* prefs) { | 466 void Preferences::Init(PrefServiceSyncable* prefs) { |
394 InitUserPrefs(prefs); | 467 InitUserPrefs(prefs); |
395 | 468 |
396 // This causes OnIsSyncingChanged to be called when the value of | 469 // This causes OnIsSyncingChanged to be called when the value of |
397 // PrefService::IsSyncing() changes. | 470 // PrefService::IsSyncing() changes. |
398 prefs->AddObserver(this); | 471 prefs->AddObserver(this); |
399 | 472 |
400 // Initialize preferences to currently saved state. | 473 // Initialize preferences to currently saved state. |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 // selected and Drive is disabled. | 744 // selected and Drive is disabled. |
672 if (!pref_name || *pref_name == prefs::kDisableDrive) { | 745 if (!pref_name || *pref_name == prefs::kDisableDrive) { |
673 if (disable_drive_.GetValue()) { | 746 if (disable_drive_.GetValue()) { |
674 if (drive::util::IsUnderDriveMountPoint( | 747 if (drive::util::IsUnderDriveMountPoint( |
675 download_default_directory_.GetValue())) { | 748 download_default_directory_.GetValue())) { |
676 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, | 749 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, |
677 download_util::GetDefaultDownloadDirectory()); | 750 download_util::GetDefaultDownloadDirectory()); |
678 } | 751 } |
679 } | 752 } |
680 } | 753 } |
| 754 |
| 755 if (!pref_name || |
| 756 *pref_name == prefs::kPowerAcScreenDimDelayMs || |
| 757 *pref_name == prefs::kPowerAcScreenOffDelayMs || |
| 758 *pref_name == prefs::kPowerAcScreenLockDelayMs || |
| 759 *pref_name == prefs::kPowerAcIdleDelayMs || |
| 760 *pref_name == prefs::kPowerBatteryScreenDimDelayMs || |
| 761 *pref_name == prefs::kPowerBatteryScreenOffDelayMs || |
| 762 *pref_name == prefs::kPowerBatteryScreenLockDelayMs || |
| 763 *pref_name == prefs::kPowerBatteryIdleDelayMs || |
| 764 *pref_name == prefs::kPowerIdleAction || |
| 765 *pref_name == prefs::kPowerLidClosedAction || |
| 766 *pref_name == prefs::kPowerUseAudioActivity || |
| 767 *pref_name == prefs::kPowerUseVideoActivity || |
| 768 *pref_name == prefs::kPowerPresentationIdleDelayFactor) { |
| 769 DBusThreadManager::Get()->GetPowerPolicyController()->UpdatePolicyFromPrefs( |
| 770 *prefs_->FindPreference(prefs::kPowerAcScreenDimDelayMs), |
| 771 *prefs_->FindPreference(prefs::kPowerAcScreenOffDelayMs), |
| 772 *prefs_->FindPreference(prefs::kPowerAcScreenLockDelayMs), |
| 773 *prefs_->FindPreference(prefs::kPowerAcIdleDelayMs), |
| 774 *prefs_->FindPreference(prefs::kPowerBatteryScreenDimDelayMs), |
| 775 *prefs_->FindPreference(prefs::kPowerBatteryScreenOffDelayMs), |
| 776 *prefs_->FindPreference(prefs::kPowerBatteryScreenLockDelayMs), |
| 777 *prefs_->FindPreference(prefs::kPowerBatteryIdleDelayMs), |
| 778 *prefs_->FindPreference(prefs::kPowerIdleAction), |
| 779 *prefs_->FindPreference(prefs::kPowerLidClosedAction), |
| 780 *prefs_->FindPreference(prefs::kPowerUseAudioActivity), |
| 781 *prefs_->FindPreference(prefs::kPowerUseVideoActivity), |
| 782 *prefs_->FindPreference(prefs::kPowerPresentationIdleDelayFactor)); |
| 783 } |
681 } | 784 } |
682 | 785 |
683 void Preferences::OnIsSyncingChanged() { | 786 void Preferences::OnIsSyncingChanged() { |
684 DVLOG(1) << "OnIsSyncingChanged"; | 787 DVLOG(1) << "OnIsSyncingChanged"; |
685 ForceNaturalScrollDefault(); | 788 ForceNaturalScrollDefault(); |
686 } | 789 } |
687 | 790 |
688 void Preferences::ForceNaturalScrollDefault() { | 791 void Preferences::ForceNaturalScrollDefault() { |
689 DVLOG(1) << "ForceNaturalScrollDefault"; | 792 DVLOG(1) << "ForceNaturalScrollDefault"; |
690 if (CommandLine::ForCurrentProcess()->HasSwitch( | 793 if (CommandLine::ForCurrentProcess()->HasSwitch( |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
788 | 891 |
789 input_method::AutoRepeatRate rate; | 892 input_method::AutoRepeatRate rate; |
790 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); | 893 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); |
791 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); | 894 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); |
792 DCHECK(rate.initial_delay_in_ms > 0); | 895 DCHECK(rate.initial_delay_in_ms > 0); |
793 DCHECK(rate.repeat_interval_in_ms > 0); | 896 DCHECK(rate.repeat_interval_in_ms > 0); |
794 input_method::XKeyboard::SetAutoRepeatRate(rate); | 897 input_method::XKeyboard::SetAutoRepeatRate(rate); |
795 } | 898 } |
796 | 899 |
797 } // namespace chromeos | 900 } // namespace chromeos |
OLD | NEW |