| 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 "base/chromeos/chromeos_version.h" | 7 #include "base/chromeos/chromeos_version.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/i18n/time_formatting.h" | 9 #include "base/i18n/time_formatting.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, | 283 prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, |
| 284 false, | 284 false, |
| 285 PrefService::UNSYNCABLE_PREF); | 285 PrefService::UNSYNCABLE_PREF); |
| 286 | 286 |
| 287 RegisterDisplayPrefs(prefs); | 287 RegisterDisplayPrefs(prefs); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void Preferences::InitUserPrefs(PrefService* prefs) { | 290 void Preferences::InitUserPrefs(PrefService* prefs) { |
| 291 prefs_ = prefs; | 291 prefs_ = prefs; |
| 292 | 292 |
| 293 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, this); | 293 BooleanPrefMember::NamedChangeCallback callback = |
| 294 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, this); | 294 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); |
| 295 |
| 296 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); |
| 297 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); |
| 295 three_finger_click_enabled_.Init(prefs::kEnableTouchpadThreeFingerClick, | 298 three_finger_click_enabled_.Init(prefs::kEnableTouchpadThreeFingerClick, |
| 296 prefs, this); | 299 prefs, callback); |
| 297 three_finger_swipe_enabled_.Init(prefs::kEnableTouchpadThreeFingerSwipe, | 300 three_finger_swipe_enabled_.Init(prefs::kEnableTouchpadThreeFingerSwipe, |
| 298 prefs, this); | 301 prefs, callback); |
| 299 natural_scroll_.Init(prefs::kNaturalScroll, prefs, this); | 302 natural_scroll_.Init(prefs::kNaturalScroll, prefs, callback); |
| 300 accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, prefs, this); | 303 accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, prefs, callback); |
| 301 mouse_sensitivity_.Init(prefs::kMouseSensitivity, prefs, this); | 304 mouse_sensitivity_.Init(prefs::kMouseSensitivity, prefs, callback); |
| 302 touchpad_sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, this); | 305 touchpad_sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, callback); |
| 303 use_24hour_clock_.Init(prefs::kUse24HourClock, prefs, this); | 306 use_24hour_clock_.Init(prefs::kUse24HourClock, prefs, callback); |
| 304 disable_drive_.Init(prefs::kDisableDrive, prefs, this); | 307 disable_drive_.Init(prefs::kDisableDrive, prefs, callback); |
| 305 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular, | 308 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular, |
| 306 prefs, this); | 309 prefs, callback); |
| 307 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles, | 310 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles, |
| 308 prefs, this); | 311 prefs, callback); |
| 309 download_default_directory_.Init(prefs::kDownloadDefaultDirectory, | 312 download_default_directory_.Init(prefs::kDownloadDefaultDirectory, |
| 310 prefs, this); | 313 prefs, callback); |
| 311 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, | 314 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, |
| 312 prefs, this); | 315 prefs, callback); |
| 313 preferred_languages_.Init(prefs::kLanguagePreferredLanguages, | 316 preferred_languages_.Init(prefs::kLanguagePreferredLanguages, |
| 314 prefs, this); | 317 prefs, callback); |
| 315 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, this); | 318 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, callback); |
| 316 filtered_extension_imes_.Init(prefs::kLanguageFilteredExtensionImes, | 319 filtered_extension_imes_.Init(prefs::kLanguageFilteredExtensionImes, |
| 317 prefs, this); | 320 prefs, callback); |
| 318 current_input_method_.Init(prefs::kLanguageCurrentInputMethod, prefs, this); | 321 current_input_method_.Init(prefs::kLanguageCurrentInputMethod, |
| 319 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod, prefs, this); | 322 prefs, callback); |
| 323 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod, |
| 324 prefs, callback); |
| 320 | 325 |
| 321 for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) { | 326 for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) { |
| 322 chewing_boolean_prefs_[i].Init( | 327 chewing_boolean_prefs_[i].Init( |
| 323 language_prefs::kChewingBooleanPrefs[i].pref_name, prefs, this); | 328 language_prefs::kChewingBooleanPrefs[i].pref_name, prefs, callback); |
| 324 } | 329 } |
| 325 for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) { | 330 for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) { |
| 326 chewing_multiple_choice_prefs_[i].Init( | 331 chewing_multiple_choice_prefs_[i].Init( |
| 327 language_prefs::kChewingMultipleChoicePrefs[i].pref_name, prefs, this); | 332 language_prefs::kChewingMultipleChoicePrefs[i].pref_name, |
| 333 prefs, callback); |
| 328 } | 334 } |
| 329 chewing_hsu_sel_key_type_.Init( | 335 chewing_hsu_sel_key_type_.Init( |
| 330 language_prefs::kChewingHsuSelKeyType.pref_name, prefs, this); | 336 language_prefs::kChewingHsuSelKeyType.pref_name, prefs, callback); |
| 331 for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) { | 337 for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) { |
| 332 chewing_integer_prefs_[i].Init( | 338 chewing_integer_prefs_[i].Init( |
| 333 language_prefs::kChewingIntegerPrefs[i].pref_name, prefs, this); | 339 language_prefs::kChewingIntegerPrefs[i].pref_name, prefs, callback); |
| 334 } | 340 } |
| 335 hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, this); | 341 hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, callback); |
| 336 hangul_hanja_binding_keys_.Init( | 342 hangul_hanja_binding_keys_.Init( |
| 337 prefs::kLanguageHangulHanjaBindingKeys, prefs, this); | 343 prefs::kLanguageHangulHanjaBindingKeys, prefs, callback); |
| 338 for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { | 344 for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { |
| 339 pinyin_boolean_prefs_[i].Init( | 345 pinyin_boolean_prefs_[i].Init( |
| 340 language_prefs::kPinyinBooleanPrefs[i].pref_name, prefs, this); | 346 language_prefs::kPinyinBooleanPrefs[i].pref_name, prefs, callback); |
| 341 } | 347 } |
| 342 for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) { | 348 for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) { |
| 343 pinyin_int_prefs_[i].Init( | 349 pinyin_int_prefs_[i].Init( |
| 344 language_prefs::kPinyinIntegerPrefs[i].pref_name, prefs, this); | 350 language_prefs::kPinyinIntegerPrefs[i].pref_name, prefs, callback); |
| 345 } | 351 } |
| 346 pinyin_double_pinyin_schema_.Init( | 352 pinyin_double_pinyin_schema_.Init( |
| 347 language_prefs::kPinyinDoublePinyinSchema.pref_name, prefs, this); | 353 language_prefs::kPinyinDoublePinyinSchema.pref_name, prefs, callback); |
| 348 for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { | 354 for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
| 349 mozc_boolean_prefs_[i].Init( | 355 mozc_boolean_prefs_[i].Init( |
| 350 language_prefs::kMozcBooleanPrefs[i].pref_name, prefs, this); | 356 language_prefs::kMozcBooleanPrefs[i].pref_name, prefs, callback); |
| 351 } | 357 } |
| 352 for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { | 358 for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
| 353 mozc_multiple_choice_prefs_[i].Init( | 359 mozc_multiple_choice_prefs_[i].Init( |
| 354 language_prefs::kMozcMultipleChoicePrefs[i].pref_name, prefs, this); | 360 language_prefs::kMozcMultipleChoicePrefs[i].pref_name, prefs, callback); |
| 355 } | 361 } |
| 356 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { | 362 for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
| 357 mozc_integer_prefs_[i].Init( | 363 mozc_integer_prefs_[i].Init( |
| 358 language_prefs::kMozcIntegerPrefs[i].pref_name, prefs, this); | 364 language_prefs::kMozcIntegerPrefs[i].pref_name, prefs, callback); |
| 359 } | 365 } |
| 360 xkb_auto_repeat_enabled_.Init( | 366 xkb_auto_repeat_enabled_.Init( |
| 361 prefs::kLanguageXkbAutoRepeatEnabled, prefs, this); | 367 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); |
| 362 xkb_auto_repeat_delay_pref_.Init( | 368 xkb_auto_repeat_delay_pref_.Init( |
| 363 prefs::kLanguageXkbAutoRepeatDelay, prefs, this); | 369 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); |
| 364 xkb_auto_repeat_interval_pref_.Init( | 370 xkb_auto_repeat_interval_pref_.Init( |
| 365 prefs::kLanguageXkbAutoRepeatInterval, prefs, this); | 371 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); |
| 366 | 372 |
| 367 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, this); | 373 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); |
| 368 | 374 |
| 369 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, this); | 375 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); |
| 370 } | 376 } |
| 371 | 377 |
| 372 void Preferences::Init(PrefService* prefs) { | 378 void Preferences::Init(PrefService* prefs) { |
| 373 InitUserPrefs(prefs); | 379 InitUserPrefs(prefs); |
| 374 | 380 |
| 375 // Initialize preferences to currently saved state. | 381 // Initialize preferences to currently saved state. |
| 376 NotifyPrefChanged(NULL); | 382 NotifyPrefChanged(NULL); |
| 377 | 383 |
| 378 // If a guest is logged in, initialize the prefs as if this is the first | 384 // If a guest is logged in, initialize the prefs as if this is the first |
| 379 // login. | 385 // login. |
| 380 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { | 386 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { |
| 381 LoginUtils::Get()->SetFirstLoginPrefs(prefs); | 387 LoginUtils::Get()->SetFirstLoginPrefs(prefs); |
| 382 } | 388 } |
| 383 | 389 |
| 384 NotifyDisplayPrefChanged(prefs); | 390 NotifyDisplayPrefChanged(prefs); |
| 385 } | 391 } |
| 386 | 392 |
| 387 void Preferences::InitUserPrefsForTesting(PrefService* prefs) { | 393 void Preferences::InitUserPrefsForTesting(PrefService* prefs) { |
| 388 InitUserPrefs(prefs); | 394 InitUserPrefs(prefs); |
| 389 } | 395 } |
| 390 | 396 |
| 391 void Preferences::SetInputMethodListForTesting() { | 397 void Preferences::SetInputMethodListForTesting() { |
| 392 SetInputMethodList(); | 398 SetInputMethodList(); |
| 393 } | 399 } |
| 394 | 400 |
| 395 void Preferences::OnPreferenceChanged(PrefServiceBase* service, | 401 void Preferences::OnPreferenceChanged(const std::string& pref_name) { |
| 396 const std::string& pref_name) { | |
| 397 NotifyPrefChanged(&pref_name); | 402 NotifyPrefChanged(&pref_name); |
| 398 } | 403 } |
| 399 | 404 |
| 400 void Preferences::NotifyPrefChanged(const std::string* pref_name) { | 405 void Preferences::NotifyPrefChanged(const std::string* pref_name) { |
| 401 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) { | 406 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) { |
| 402 const bool enabled = tap_to_click_enabled_.GetValue(); | 407 const bool enabled = tap_to_click_enabled_.GetValue(); |
| 403 system::touchpad_settings::SetTapToClick(enabled); | 408 system::touchpad_settings::SetTapToClick(enabled); |
| 404 if (pref_name) | 409 if (pref_name) |
| 405 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled); | 410 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled); |
| 406 else | 411 else |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 | 761 |
| 757 input_method::AutoRepeatRate rate; | 762 input_method::AutoRepeatRate rate; |
| 758 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); | 763 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); |
| 759 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); | 764 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); |
| 760 DCHECK(rate.initial_delay_in_ms > 0); | 765 DCHECK(rate.initial_delay_in_ms > 0); |
| 761 DCHECK(rate.repeat_interval_in_ms > 0); | 766 DCHECK(rate.repeat_interval_in_ms > 0); |
| 762 input_method::XKeyboard::SetAutoRepeatRate(rate); | 767 input_method::XKeyboard::SetAutoRepeatRate(rate); |
| 763 } | 768 } |
| 764 | 769 |
| 765 } // namespace chromeos | 770 } // namespace chromeos |
| OLD | NEW |