| 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" |
| 11 #include "base/metrics/histogram.h" | 11 #include "base/metrics/histogram.h" |
| 12 #include "base/prefs/public/pref_member.h" | 12 #include "base/prefs/public/pref_member.h" |
| 13 #include "base/string_split.h" | 13 #include "base/string_split.h" |
| 14 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 15 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
| 16 #include "chrome/browser/browser_process.h" | 16 #include "chrome/browser/browser_process.h" |
| 17 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 17 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" |
| 18 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" | 18 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" |
| 19 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" | 19 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |
| 20 #include "chrome/browser/chromeos/input_method/input_method_manager.h" | 20 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |
| 21 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 21 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
| 22 #include "chrome/browser/chromeos/input_method/xkeyboard.h" | 22 #include "chrome/browser/chromeos/input_method/xkeyboard.h" |
| 23 #include "chrome/browser/chromeos/login/login_utils.h" | 23 #include "chrome/browser/chromeos/login/login_utils.h" |
| 24 #include "chrome/browser/chromeos/login/user_manager.h" | 24 #include "chrome/browser/chromeos/login/user_manager.h" |
| 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_registry_syncable.h" |
| 31 #include "chrome/browser/prefs/pref_service_syncable.h" |
| 31 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 32 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 32 #include "chrome/common/chrome_notification_types.h" | 33 #include "chrome/common/chrome_notification_types.h" |
| 33 #include "chrome/common/chrome_switches.h" | 34 #include "chrome/common/chrome_switches.h" |
| 34 #include "chrome/common/pref_names.h" | 35 #include "chrome/common/pref_names.h" |
| 35 #include "chromeos/dbus/dbus_thread_manager.h" | 36 #include "chromeos/dbus/dbus_thread_manager.h" |
| 36 #include "chromeos/dbus/power_policy_controller.h" | 37 #include "chromeos/dbus/power_policy_controller.h" |
| 37 #include "googleurl/src/gurl.h" | 38 #include "googleurl/src/gurl.h" |
| 38 #include "third_party/icu/public/i18n/unicode/timezone.h" | 39 #include "third_party/icu/public/i18n/unicode/timezone.h" |
| 39 #include "ui/base/events/event_constants.h" | 40 #include "ui/base/events/event_constants.h" |
| 40 #include "ui/base/events/event_utils.h" | 41 #include "ui/base/events/event_utils.h" |
| 41 | 42 |
| 42 namespace chromeos { | 43 namespace chromeos { |
| 43 | 44 |
| 44 static const char kFallbackInputMethodLocale[] = "en-US"; | 45 static const char kFallbackInputMethodLocale[] = "en-US"; |
| 45 | 46 |
| 46 Preferences::Preferences() | 47 Preferences::Preferences() |
| 47 : prefs_(NULL), | 48 : prefs_(NULL), |
| 48 input_method_manager_(input_method::GetInputMethodManager()) { | 49 input_method_manager_(input_method::GetInputMethodManager()) { |
| 49 } | 50 } |
| 50 | 51 |
| 51 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) | 52 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) |
| 52 : input_method_manager_(input_method_manager) { | 53 : input_method_manager_(input_method_manager) { |
| 53 } | 54 } |
| 54 | 55 |
| 55 Preferences::~Preferences() { | 56 Preferences::~Preferences() { |
| 56 prefs_->RemoveObserver(this); | 57 prefs_->RemoveObserver(this); |
| 57 } | 58 } |
| 58 | 59 |
| 59 // static | 60 // static |
| 60 void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { | 61 void Preferences::RegisterUserPrefs(PrefService* prefs, |
| 62 PrefRegistrySyncable* registry) { |
| 63 // TODO(joi): Get rid of need for PrefService parameter. |
| 61 std::string hardware_keyboard_id; | 64 std::string hardware_keyboard_id; |
| 62 // TODO(yusukes): Remove the runtime hack. | 65 // TODO(yusukes): Remove the runtime hack. |
| 63 if (base::chromeos::IsRunningOnChromeOS()) { | 66 if (base::chromeos::IsRunningOnChromeOS()) { |
| 64 input_method::InputMethodManager* manager = | 67 input_method::InputMethodManager* manager = |
| 65 input_method::GetInputMethodManager(); | 68 input_method::GetInputMethodManager(); |
| 66 if (manager) { | 69 if (manager) { |
| 67 hardware_keyboard_id = | 70 hardware_keyboard_id = |
| 68 manager->GetInputMethodUtil()->GetHardwareInputMethodId(); | 71 manager->GetInputMethodUtil()->GetHardwareInputMethodId(); |
| 69 } | 72 } |
| 70 } else { | 73 } else { |
| 71 hardware_keyboard_id = "xkb:us::eng"; // only for testing. | 74 hardware_keyboard_id = "xkb:us::eng"; // only for testing. |
| 72 } | 75 } |
| 73 | 76 |
| 74 prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, | 77 registry->RegisterBooleanPref(prefs::kTapToClickEnabled, |
| 75 true, | 78 true, |
| 76 PrefServiceSyncable::SYNCABLE_PREF); | 79 PrefRegistrySyncable::SYNCABLE_PREF); |
| 77 prefs->RegisterBooleanPref(prefs::kTapDraggingEnabled, | 80 registry->RegisterBooleanPref(prefs::kTapDraggingEnabled, |
| 78 false, | 81 false, |
| 79 PrefServiceSyncable::SYNCABLE_PREF); | 82 PrefRegistrySyncable::SYNCABLE_PREF); |
| 80 prefs->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, | 83 registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, |
| 81 false, | 84 false, |
| 82 PrefServiceSyncable::UNSYNCABLE_PREF); | 85 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 83 prefs->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerSwipe, | 86 registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerSwipe, |
| 84 false, | 87 false, |
| 85 PrefServiceSyncable::UNSYNCABLE_PREF); | 88 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 86 prefs->RegisterBooleanPref( | 89 registry->RegisterBooleanPref( |
| 87 prefs::kNaturalScroll, | 90 prefs::kNaturalScroll, |
| 88 CommandLine::ForCurrentProcess()->HasSwitch( | 91 CommandLine::ForCurrentProcess()->HasSwitch( |
| 89 switches::kNaturalScrollDefault), | 92 switches::kNaturalScrollDefault), |
| 90 PrefServiceSyncable::SYNCABLE_PREF); | 93 PrefRegistrySyncable::SYNCABLE_PREF); |
| 91 prefs->RegisterBooleanPref(prefs::kPrimaryMouseButtonRight, | 94 registry->RegisterBooleanPref(prefs::kPrimaryMouseButtonRight, |
| 92 false, | 95 false, |
| 93 PrefServiceSyncable::SYNCABLE_PREF); | 96 PrefRegistrySyncable::SYNCABLE_PREF); |
| 94 prefs->RegisterBooleanPref(prefs::kLabsMediaplayerEnabled, | 97 registry->RegisterBooleanPref(prefs::kLabsMediaplayerEnabled, |
| 95 false, | 98 false, |
| 96 PrefServiceSyncable::UNSYNCABLE_PREF); | 99 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 97 prefs->RegisterBooleanPref(prefs::kLabsAdvancedFilesystemEnabled, | 100 registry->RegisterBooleanPref(prefs::kLabsAdvancedFilesystemEnabled, |
| 98 false, | 101 false, |
| 99 PrefServiceSyncable::UNSYNCABLE_PREF); | 102 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 100 // Check if the accessibility prefs are already registered, which can happen | 103 // Check if the accessibility prefs are already registered, which can happen |
| 101 // in WizardController::RegisterPrefs. We still want to try to register | 104 // in WizardController::RegisterPrefs. We still want to try to register |
| 102 // the prefs here in case of Chrome/Linux with ChromeOS=1. | 105 // the prefs here in case of Chrome/Linux with ChromeOS=1. |
| 103 if (prefs->FindPreference(prefs::kSpokenFeedbackEnabled) == NULL) { | 106 if (prefs->FindPreference(prefs::kSpokenFeedbackEnabled) == NULL) { |
| 104 prefs->RegisterBooleanPref(prefs::kSpokenFeedbackEnabled, | 107 registry->RegisterBooleanPref(prefs::kSpokenFeedbackEnabled, |
| 105 false, | 108 false, |
| 106 PrefServiceSyncable::UNSYNCABLE_PREF); | 109 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 107 } | 110 } |
| 108 if (prefs->FindPreference(prefs::kHighContrastEnabled) == NULL) { | 111 if (prefs->FindPreference(prefs::kHighContrastEnabled) == NULL) { |
| 109 prefs->RegisterBooleanPref(prefs::kHighContrastEnabled, | 112 registry->RegisterBooleanPref(prefs::kHighContrastEnabled, |
| 110 false, | 113 false, |
| 111 PrefServiceSyncable::UNSYNCABLE_PREF); | 114 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 112 } | 115 } |
| 113 if (prefs->FindPreference(prefs::kVirtualKeyboardEnabled) == NULL) { | 116 if (prefs->FindPreference(prefs::kVirtualKeyboardEnabled) == NULL) { |
| 114 prefs->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, | 117 registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, |
| 115 false, | 118 false, |
| 116 PrefServiceSyncable::UNSYNCABLE_PREF); | 119 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 117 } | 120 } |
| 118 prefs->RegisterBooleanPref(prefs::kScreenMagnifierEnabled, | 121 registry->RegisterBooleanPref(prefs::kScreenMagnifierEnabled, |
| 119 false, | 122 false, |
| 120 PrefServiceSyncable::SYNCABLE_PREF); | 123 PrefRegistrySyncable::SYNCABLE_PREF); |
| 121 prefs->RegisterIntegerPref(prefs::kScreenMagnifierType, | 124 registry->RegisterIntegerPref(prefs::kScreenMagnifierType, |
| 122 ash::kDefaultMagnifierType, | 125 ash::kDefaultMagnifierType, |
| 123 PrefServiceSyncable::SYNCABLE_PREF); | 126 PrefRegistrySyncable::SYNCABLE_PREF); |
| 124 prefs->RegisterDoublePref(prefs::kScreenMagnifierScale, | 127 registry->RegisterDoublePref(prefs::kScreenMagnifierScale, |
| 125 std::numeric_limits<double>::min(), | 128 std::numeric_limits<double>::min(), |
| 126 PrefServiceSyncable::UNSYNCABLE_PREF); | 129 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 127 prefs->RegisterBooleanPref(prefs::kShouldAlwaysShowAccessibilityMenu, | 130 registry->RegisterBooleanPref(prefs::kShouldAlwaysShowAccessibilityMenu, |
| 128 false, | 131 false, |
| 129 PrefServiceSyncable::UNSYNCABLE_PREF); | 132 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 130 prefs->RegisterIntegerPref(prefs::kMouseSensitivity, | 133 registry->RegisterIntegerPref(prefs::kMouseSensitivity, |
| 131 3, | 134 3, |
| 132 PrefServiceSyncable::SYNCABLE_PREF); | 135 PrefRegistrySyncable::SYNCABLE_PREF); |
| 133 prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, | 136 registry->RegisterIntegerPref(prefs::kTouchpadSensitivity, |
| 134 3, | 137 3, |
| 135 PrefServiceSyncable::SYNCABLE_PREF); | 138 PrefRegistrySyncable::SYNCABLE_PREF); |
| 136 prefs->RegisterBooleanPref(prefs::kUse24HourClock, | 139 registry->RegisterBooleanPref(prefs::kUse24HourClock, |
| 137 base::GetHourClockType() == base::k24HourClock, | 140 base::GetHourClockType() == base::k24HourClock, |
| 138 PrefServiceSyncable::SYNCABLE_PREF); | 141 PrefRegistrySyncable::SYNCABLE_PREF); |
| 139 prefs->RegisterBooleanPref(prefs::kDisableDrive, | 142 registry->RegisterBooleanPref(prefs::kDisableDrive, |
| 140 false, | 143 false, |
| 141 PrefServiceSyncable::SYNCABLE_PREF); | 144 PrefRegistrySyncable::SYNCABLE_PREF); |
| 142 prefs->RegisterBooleanPref(prefs::kDisableDriveOverCellular, | 145 registry->RegisterBooleanPref(prefs::kDisableDriveOverCellular, |
| 143 true, | 146 true, |
| 144 PrefServiceSyncable::SYNCABLE_PREF); | 147 PrefRegistrySyncable::SYNCABLE_PREF); |
| 145 prefs->RegisterBooleanPref(prefs::kDisableDriveHostedFiles, | 148 registry->RegisterBooleanPref(prefs::kDisableDriveHostedFiles, |
| 146 false, | 149 false, |
| 147 PrefServiceSyncable::SYNCABLE_PREF); | 150 PrefRegistrySyncable::SYNCABLE_PREF); |
| 148 // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod | 151 // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod |
| 149 // because they're just used to track the logout state of the device. | 152 // because they're just used to track the logout state of the device. |
| 150 prefs->RegisterStringPref(prefs::kLanguageCurrentInputMethod, | 153 registry->RegisterStringPref(prefs::kLanguageCurrentInputMethod, |
| 154 "", |
| 155 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 156 registry->RegisterStringPref(prefs::kLanguagePreviousInputMethod, |
| 151 "", | 157 "", |
| 152 PrefServiceSyncable::UNSYNCABLE_PREF); | 158 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 153 prefs->RegisterStringPref(prefs::kLanguagePreviousInputMethod, | |
| 154 "", | |
| 155 PrefServiceSyncable::UNSYNCABLE_PREF); | |
| 156 // We don't sync the list of input methods and preferred languages since a | 159 // We don't sync the list of input methods and preferred languages since a |
| 157 // user might use two or more devices with different hardware keyboards. | 160 // user might use two or more devices with different hardware keyboards. |
| 158 // crosbug.com/15181 | 161 // crosbug.com/15181 |
| 159 prefs->RegisterStringPref(prefs::kLanguagePreferredLanguages, | 162 registry->RegisterStringPref(prefs::kLanguagePreferredLanguages, |
| 160 kFallbackInputMethodLocale, | 163 kFallbackInputMethodLocale, |
| 161 PrefServiceSyncable::UNSYNCABLE_PREF); | 164 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 162 prefs->RegisterStringPref(prefs::kLanguagePreloadEngines, | 165 registry->RegisterStringPref(prefs::kLanguagePreloadEngines, |
| 163 hardware_keyboard_id, | 166 hardware_keyboard_id, |
| 164 PrefServiceSyncable::UNSYNCABLE_PREF); | 167 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 165 prefs->RegisterStringPref(prefs::kLanguageFilteredExtensionImes, | 168 registry->RegisterStringPref(prefs::kLanguageFilteredExtensionImes, |
| 166 "", | 169 "", |
| 167 PrefServiceSyncable::UNSYNCABLE_PREF); | 170 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 168 for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) { | 171 for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) { |
| 169 prefs->RegisterBooleanPref( | 172 registry->RegisterBooleanPref( |
| 170 language_prefs::kChewingBooleanPrefs[i].pref_name, | 173 language_prefs::kChewingBooleanPrefs[i].pref_name, |
| 171 language_prefs::kChewingBooleanPrefs[i].default_pref_value, | 174 language_prefs::kChewingBooleanPrefs[i].default_pref_value, |
| 172 language_prefs::kChewingBooleanPrefs[i].sync_status); | 175 language_prefs::kChewingBooleanPrefs[i].sync_status); |
| 173 } | 176 } |
| 174 for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) { | 177 for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) { |
| 175 prefs->RegisterStringPref( | 178 registry->RegisterStringPref( |
| 176 language_prefs::kChewingMultipleChoicePrefs[i].pref_name, | 179 language_prefs::kChewingMultipleChoicePrefs[i].pref_name, |
| 177 language_prefs::kChewingMultipleChoicePrefs[i].default_pref_value, | 180 language_prefs::kChewingMultipleChoicePrefs[i].default_pref_value, |
| 178 language_prefs::kChewingMultipleChoicePrefs[i].sync_status); | 181 language_prefs::kChewingMultipleChoicePrefs[i].sync_status); |
| 179 } | 182 } |
| 180 prefs->RegisterIntegerPref( | 183 registry->RegisterIntegerPref( |
| 181 language_prefs::kChewingHsuSelKeyType.pref_name, | 184 language_prefs::kChewingHsuSelKeyType.pref_name, |
| 182 language_prefs::kChewingHsuSelKeyType.default_pref_value, | 185 language_prefs::kChewingHsuSelKeyType.default_pref_value, |
| 183 language_prefs::kChewingHsuSelKeyType.sync_status); | 186 language_prefs::kChewingHsuSelKeyType.sync_status); |
| 184 | 187 |
| 185 for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) { | 188 for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) { |
| 186 prefs->RegisterIntegerPref( | 189 registry->RegisterIntegerPref( |
| 187 language_prefs::kChewingIntegerPrefs[i].pref_name, | 190 language_prefs::kChewingIntegerPrefs[i].pref_name, |
| 188 language_prefs::kChewingIntegerPrefs[i].default_pref_value, | 191 language_prefs::kChewingIntegerPrefs[i].default_pref_value, |
| 189 language_prefs::kChewingIntegerPrefs[i].sync_status); | 192 language_prefs::kChewingIntegerPrefs[i].sync_status); |
| 190 } | 193 } |
| 191 prefs->RegisterStringPref( | 194 registry->RegisterStringPref( |
| 192 prefs::kLanguageHangulKeyboard, | 195 prefs::kLanguageHangulKeyboard, |
| 193 language_prefs::kHangulKeyboardNameIDPairs[0].keyboard_id, | 196 language_prefs::kHangulKeyboardNameIDPairs[0].keyboard_id, |
| 194 PrefServiceSyncable::SYNCABLE_PREF); | 197 PrefRegistrySyncable::SYNCABLE_PREF); |
| 195 prefs->RegisterStringPref(prefs::kLanguageHangulHanjaBindingKeys, | 198 registry->RegisterStringPref( |
| 196 language_prefs::kHangulHanjaBindingKeys, | 199 prefs::kLanguageHangulHanjaBindingKeys, |
| 197 // Don't sync the pref as it's not user-configurable | 200 language_prefs::kHangulHanjaBindingKeys, |
| 198 PrefServiceSyncable::UNSYNCABLE_PREF); | 201 // Don't sync the pref as it's not user-configurable |
| 202 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 199 for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { | 203 for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { |
| 200 prefs->RegisterBooleanPref( | 204 registry->RegisterBooleanPref( |
| 201 language_prefs::kPinyinBooleanPrefs[i].pref_name, | 205 language_prefs::kPinyinBooleanPrefs[i].pref_name, |
| 202 language_prefs::kPinyinBooleanPrefs[i].default_pref_value, | 206 language_prefs::kPinyinBooleanPrefs[i].default_pref_value, |
| 203 language_prefs::kPinyinBooleanPrefs[i].sync_status); | 207 language_prefs::kPinyinBooleanPrefs[i].sync_status); |
| 204 } | 208 } |
| 205 for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) { | 209 for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) { |
| 206 prefs->RegisterIntegerPref( | 210 registry->RegisterIntegerPref( |
| 207 language_prefs::kPinyinIntegerPrefs[i].pref_name, | 211 language_prefs::kPinyinIntegerPrefs[i].pref_name, |
| 208 language_prefs::kPinyinIntegerPrefs[i].default_pref_value, | 212 language_prefs::kPinyinIntegerPrefs[i].default_pref_value, |
| 209 language_prefs::kPinyinIntegerPrefs[i].sync_status); | 213 language_prefs::kPinyinIntegerPrefs[i].sync_status); |
| 210 } | 214 } |
| 211 prefs->RegisterIntegerPref( | 215 registry->RegisterIntegerPref( |
| 212 language_prefs::kPinyinDoublePinyinSchema.pref_name, | 216 language_prefs::kPinyinDoublePinyinSchema.pref_name, |
| 213 language_prefs::kPinyinDoublePinyinSchema.default_pref_value, | 217 language_prefs::kPinyinDoublePinyinSchema.default_pref_value, |
| 214 PrefServiceSyncable::UNSYNCABLE_PREF); | 218 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 215 | 219 |
| 216 for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { | 220 for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
| 217 prefs->RegisterBooleanPref( | 221 registry->RegisterBooleanPref( |
| 218 language_prefs::kMozcBooleanPrefs[i].pref_name, | 222 language_prefs::kMozcBooleanPrefs[i].pref_name, |
| 219 language_prefs::kMozcBooleanPrefs[i].default_pref_value, | 223 language_prefs::kMozcBooleanPrefs[i].default_pref_value, |
| 220 language_prefs::kMozcBooleanPrefs[i].sync_status); | 224 language_prefs::kMozcBooleanPrefs[i].sync_status); |
| 221 } | 225 } |
| 222 for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { | 226 for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
| 223 prefs->RegisterStringPref( | 227 registry->RegisterStringPref( |
| 224 language_prefs::kMozcMultipleChoicePrefs[i].pref_name, | 228 language_prefs::kMozcMultipleChoicePrefs[i].pref_name, |
| 225 language_prefs::kMozcMultipleChoicePrefs[i].default_pref_value, | 229 language_prefs::kMozcMultipleChoicePrefs[i].default_pref_value, |
| 226 language_prefs::kMozcMultipleChoicePrefs[i].sync_status); | 230 language_prefs::kMozcMultipleChoicePrefs[i].sync_status); |
| 227 } | 231 } |
| 228 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { | 232 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
| 229 prefs->RegisterIntegerPref( | 233 registry->RegisterIntegerPref( |
| 230 language_prefs::kMozcIntegerPrefs[i].pref_name, | 234 language_prefs::kMozcIntegerPrefs[i].pref_name, |
| 231 language_prefs::kMozcIntegerPrefs[i].default_pref_value, | 235 language_prefs::kMozcIntegerPrefs[i].default_pref_value, |
| 232 language_prefs::kMozcIntegerPrefs[i].sync_status); | 236 language_prefs::kMozcIntegerPrefs[i].sync_status); |
| 233 } | 237 } |
| 234 prefs->RegisterIntegerPref(prefs::kLanguageRemapSearchKeyTo, | 238 registry->RegisterIntegerPref(prefs::kLanguageRemapSearchKeyTo, |
| 235 input_method::kSearchKey, | 239 input_method::kSearchKey, |
| 236 PrefServiceSyncable::SYNCABLE_PREF); | 240 PrefRegistrySyncable::SYNCABLE_PREF); |
| 237 prefs->RegisterIntegerPref(prefs::kLanguageRemapControlKeyTo, | 241 registry->RegisterIntegerPref(prefs::kLanguageRemapControlKeyTo, |
| 238 input_method::kControlKey, | 242 input_method::kControlKey, |
| 239 PrefServiceSyncable::SYNCABLE_PREF); | 243 PrefRegistrySyncable::SYNCABLE_PREF); |
| 240 prefs->RegisterIntegerPref(prefs::kLanguageRemapAltKeyTo, | 244 registry->RegisterIntegerPref(prefs::kLanguageRemapAltKeyTo, |
| 241 input_method::kAltKey, | 245 input_method::kAltKey, |
| 242 PrefServiceSyncable::SYNCABLE_PREF); | 246 PrefRegistrySyncable::SYNCABLE_PREF); |
| 243 prefs->RegisterIntegerPref(prefs::kLanguageRemapCapsLockKeyTo, | 247 registry->RegisterIntegerPref(prefs::kLanguageRemapCapsLockKeyTo, |
| 244 input_method::kCapsLockKey, | 248 input_method::kCapsLockKey, |
| 245 PrefServiceSyncable::SYNCABLE_PREF); | 249 PrefRegistrySyncable::SYNCABLE_PREF); |
| 246 prefs->RegisterIntegerPref(prefs::kLanguageRemapDiamondKeyTo, | 250 registry->RegisterIntegerPref(prefs::kLanguageRemapDiamondKeyTo, |
| 247 input_method::kControlKey, | 251 input_method::kControlKey, |
| 248 PrefServiceSyncable::SYNCABLE_PREF); | 252 PrefRegistrySyncable::SYNCABLE_PREF); |
| 249 // We don't sync the following keyboard prefs since they are not user- | 253 // We don't sync the following keyboard prefs since they are not user- |
| 250 // configurable. | 254 // configurable. |
| 251 prefs->RegisterBooleanPref(prefs::kLanguageXkbAutoRepeatEnabled, | 255 registry->RegisterBooleanPref(prefs::kLanguageXkbAutoRepeatEnabled, |
| 252 true, | 256 true, |
| 253 PrefServiceSyncable::UNSYNCABLE_PREF); | 257 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 254 prefs->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatDelay, | 258 registry->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatDelay, |
| 255 language_prefs::kXkbAutoRepeatDelayInMs, | 259 language_prefs::kXkbAutoRepeatDelayInMs, |
| 256 PrefServiceSyncable::UNSYNCABLE_PREF); | 260 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 257 prefs->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatInterval, | 261 registry->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatInterval, |
| 258 language_prefs::kXkbAutoRepeatIntervalInMs, | 262 language_prefs::kXkbAutoRepeatIntervalInMs, |
| 259 PrefServiceSyncable::UNSYNCABLE_PREF); | 263 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 260 | 264 |
| 261 // Screen lock default to off. | 265 // Screen lock default to off. |
| 262 prefs->RegisterBooleanPref(prefs::kEnableScreenLock, | 266 registry->RegisterBooleanPref(prefs::kEnableScreenLock, |
| 263 false, | 267 false, |
| 264 PrefServiceSyncable::SYNCABLE_PREF); | 268 PrefRegistrySyncable::SYNCABLE_PREF); |
| 265 | 269 |
| 266 // Mobile plan notifications default to on. | 270 // Mobile plan notifications default to on. |
| 267 prefs->RegisterBooleanPref(prefs::kShowPlanNotifications, | 271 registry->RegisterBooleanPref(prefs::kShowPlanNotifications, |
| 268 true, | 272 true, |
| 269 PrefServiceSyncable::SYNCABLE_PREF); | 273 PrefRegistrySyncable::SYNCABLE_PREF); |
| 270 | 274 |
| 271 // 3G first-time usage promo will be shown at least once. | 275 // 3G first-time usage promo will be shown at least once. |
| 272 prefs->RegisterBooleanPref(prefs::kShow3gPromoNotification, | 276 registry->RegisterBooleanPref(prefs::kShow3gPromoNotification, |
| 273 true, | 277 true, |
| 274 PrefServiceSyncable::UNSYNCABLE_PREF); | 278 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 275 | 279 |
| 276 // Initially all existing users would see "What's new" | 280 // Initially all existing users would see "What's new" |
| 277 // for current version after update. | 281 // for current version after update. |
| 278 prefs->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion, | 282 registry->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion, |
| 279 "0.0.0.0", | 283 "0.0.0.0", |
| 280 PrefServiceSyncable::SYNCABLE_PREF); | 284 PrefRegistrySyncable::SYNCABLE_PREF); |
| 281 | 285 |
| 282 // TODO(wad): Once UI is connected, a final default can be set. At that point | 286 // TODO(wad): Once UI is connected, a final default can be set. At that point |
| 283 // change this pref from UNSYNCABLE to SYNCABLE. | 287 // change this pref from UNSYNCABLE to SYNCABLE. |
| 284 prefs->RegisterBooleanPref(prefs::kEnableCrosDRM, | 288 registry->RegisterBooleanPref(prefs::kEnableCrosDRM, |
| 285 true, | 289 true, |
| 286 PrefServiceSyncable::UNSYNCABLE_PREF); | 290 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 287 | 291 |
| 288 prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, | 292 registry->RegisterBooleanPref(prefs::kExternalStorageDisabled, |
| 289 false, | 293 false, |
| 290 PrefServiceSyncable::UNSYNCABLE_PREF); | 294 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 291 | 295 |
| 292 // TODO(derat): Right now, these values are just copied from powerd's | 296 // TODO(derat): Right now, these values are just copied from powerd's |
| 293 // defaults. Make this file be the canonical source of default power | 297 // defaults. Make this file be the canonical source of default power |
| 294 // management settings. Note that these prefs' default values aren't | 298 // management settings. Note that these prefs' default values aren't |
| 295 // currently expressive enough to convey powerd's default behavior, e.g. | 299 // currently expressive enough to convey powerd's default behavior, e.g. |
| 296 // powerd shuts down instead of suspending when no user is logged in, and | 300 // powerd shuts down instead of suspending when no user is logged in, and |
| 297 // the default screen-lock delays are only used when | 301 // the default screen-lock delays are only used when |
| 298 // prefs::kEnableScreenLock is set. | 302 // prefs::kEnableScreenLock is set. |
| 299 prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, | 303 registry->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, |
| 300 420000, | 304 420000, |
| 301 PrefServiceSyncable::UNSYNCABLE_PREF); | 305 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 302 prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, | 306 registry->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, |
| 303 480000, | 307 480000, |
| 304 PrefServiceSyncable::UNSYNCABLE_PREF); | 308 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 305 prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, | 309 registry->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, |
| 306 600000, | 310 600000, |
| 307 PrefServiceSyncable::UNSYNCABLE_PREF); | 311 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 308 prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, | 312 registry->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, |
| 309 1800000, | 313 1800000, |
| 310 PrefServiceSyncable::UNSYNCABLE_PREF); | 314 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 311 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, | 315 registry->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, |
| 312 300000, | 316 300000, |
| 313 PrefServiceSyncable::UNSYNCABLE_PREF); | 317 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 314 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, | 318 registry->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, |
| 315 360000, | 319 360000, |
| 316 PrefServiceSyncable::UNSYNCABLE_PREF); | 320 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 317 prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, | 321 registry->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, |
| 318 600000, | 322 600000, |
| 319 PrefServiceSyncable::UNSYNCABLE_PREF); | 323 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 320 prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, | 324 registry->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, |
| 321 600000, | 325 600000, |
| 322 PrefServiceSyncable::UNSYNCABLE_PREF); | 326 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 323 prefs->RegisterIntegerPref(prefs::kPowerIdleAction, | 327 registry->RegisterIntegerPref(prefs::kPowerIdleAction, |
| 324 chromeos::PowerPolicyController::ACTION_SUSPEND, | 328 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 325 PrefServiceSyncable::UNSYNCABLE_PREF); | 329 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 326 prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction, | 330 registry->RegisterIntegerPref(prefs::kPowerLidClosedAction, |
| 327 chromeos::PowerPolicyController::ACTION_SUSPEND, | 331 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 328 PrefServiceSyncable::UNSYNCABLE_PREF); | 332 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 329 prefs->RegisterBooleanPref(prefs::kPowerUseAudioActivity, | 333 registry->RegisterBooleanPref(prefs::kPowerUseAudioActivity, |
| 330 true, | 334 true, |
| 331 PrefServiceSyncable::UNSYNCABLE_PREF); | 335 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 332 prefs->RegisterBooleanPref(prefs::kPowerUseVideoActivity, | 336 registry->RegisterBooleanPref(prefs::kPowerUseVideoActivity, |
| 333 true, | 337 true, |
| 334 PrefServiceSyncable::UNSYNCABLE_PREF); | 338 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 335 prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, | 339 registry->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, |
| 336 2.0, | 340 2.0, |
| 337 PrefServiceSyncable::UNSYNCABLE_PREF); | 341 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 338 } | 342 } |
| 339 | 343 |
| 340 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { | 344 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
| 341 prefs_ = prefs; | 345 prefs_ = prefs; |
| 342 | 346 |
| 343 BooleanPrefMember::NamedChangeCallback callback = | 347 BooleanPrefMember::NamedChangeCallback callback = |
| 344 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); | 348 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); |
| 345 | 349 |
| 346 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); | 350 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); |
| 347 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); | 351 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); |
| (...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 | 885 |
| 882 input_method::AutoRepeatRate rate; | 886 input_method::AutoRepeatRate rate; |
| 883 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); | 887 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); |
| 884 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); | 888 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); |
| 885 DCHECK(rate.initial_delay_in_ms > 0); | 889 DCHECK(rate.initial_delay_in_ms > 0); |
| 886 DCHECK(rate.repeat_interval_in_ms > 0); | 890 DCHECK(rate.repeat_interval_in_ms > 0); |
| 887 input_method::XKeyboard::SetAutoRepeatRate(rate); | 891 input_method::XKeyboard::SetAutoRepeatRate(rate); |
| 888 } | 892 } |
| 889 | 893 |
| 890 } // namespace chromeos | 894 } // namespace chromeos |
| OLD | NEW |