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 |