| 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 "ash/shell_delegate.h" | 8 #include "ash/shell.h" |
| 9 #include "base/chromeos/chromeos_version.h" | 9 #include "base/chromeos/chromeos_version.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/i18n/time_formatting.h" | 11 #include "base/i18n/time_formatting.h" |
| 12 #include "base/metrics/histogram.h" | 12 #include "base/metrics/histogram.h" |
| 13 #include "base/prefs/pref_member.h" | 13 #include "base/prefs/pref_member.h" |
| 14 #include "base/prefs/pref_registry_simple.h" | 14 #include "base/prefs/pref_registry_simple.h" |
| 15 #include "base/strings/string_split.h" | 15 #include "base/strings/string_split.h" |
| 16 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
| 17 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
| 18 #include "chrome/browser/browser_process.h" | 18 #include "chrome/browser/browser_process.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 44 | 44 |
| 45 static const char kFallbackInputMethodLocale[] = "en-US"; | 45 static const char kFallbackInputMethodLocale[] = "en-US"; |
| 46 | 46 |
| 47 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. | 47 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. |
| 48 static const char kEnableTouchpadThreeFingerSwipe[] = | 48 static const char kEnableTouchpadThreeFingerSwipe[] = |
| 49 "settings.touchpad.enable_three_finger_swipe"; | 49 "settings.touchpad.enable_three_finger_swipe"; |
| 50 | 50 |
| 51 Preferences::Preferences() | 51 Preferences::Preferences() |
| 52 : prefs_(NULL), | 52 : prefs_(NULL), |
| 53 input_method_manager_(input_method::InputMethodManager::Get()) { | 53 input_method_manager_(input_method::InputMethodManager::Get()) { |
| 54 // Do not observe shell, if there is no shell instance; e.g., in some unit |
| 55 // tests. |
| 56 if (ash::Shell::HasInstance()) |
| 57 ash::Shell::GetInstance()->AddShellObserver(this); |
| 54 } | 58 } |
| 55 | 59 |
| 56 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) | 60 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) |
| 57 : prefs_(NULL), | 61 : prefs_(NULL), |
| 58 input_method_manager_(input_method_manager) { | 62 input_method_manager_(input_method_manager) { |
| 63 // Do not observe shell, if there is no shell instance; e.g., in some unit |
| 64 // tests. |
| 65 if (ash::Shell::HasInstance()) |
| 66 ash::Shell::GetInstance()->AddShellObserver(this); |
| 59 } | 67 } |
| 60 | 68 |
| 61 Preferences::~Preferences() { | 69 Preferences::~Preferences() { |
| 62 prefs_->RemoveObserver(this); | 70 prefs_->RemoveObserver(this); |
| 71 // If shell instance is destoryed before this preferences instance, there is |
| 72 // no need to remove this shell observer. |
| 73 if (ash::Shell::HasInstance()) |
| 74 ash::Shell::GetInstance()->RemoveShellObserver(this); |
| 63 } | 75 } |
| 64 | 76 |
| 65 // static | 77 // static |
| 66 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { | 78 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { |
| 67 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); | 79 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); |
| 68 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); | 80 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); |
| 69 registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, false); | 81 registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, false); |
| 70 } | 82 } |
| 71 | 83 |
| 72 // static | 84 // static |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 registry->RegisterStringPref( | 417 registry->RegisterStringPref( |
| 406 prefs::kTermsOfServiceURL, | 418 prefs::kTermsOfServiceURL, |
| 407 "", | 419 "", |
| 408 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 420 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 409 | 421 |
| 410 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. | 422 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. |
| 411 registry->RegisterBooleanPref( | 423 registry->RegisterBooleanPref( |
| 412 kEnableTouchpadThreeFingerSwipe, | 424 kEnableTouchpadThreeFingerSwipe, |
| 413 false, | 425 false, |
| 414 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 426 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 427 |
| 428 registry->RegisterBooleanPref( |
| 429 prefs::kTouchHudProjectionEnabled, |
| 430 false, |
| 431 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 415 } | 432 } |
| 416 | 433 |
| 417 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { | 434 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
| 418 prefs_ = prefs; | 435 prefs_ = prefs; |
| 419 | 436 |
| 420 BooleanPrefMember::NamedChangeCallback callback = | 437 BooleanPrefMember::NamedChangeCallback callback = |
| 421 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); | 438 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); |
| 422 | 439 |
| 423 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); | 440 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); |
| 424 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); | 441 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 442 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular, | 459 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular, |
| 443 prefs, callback); | 460 prefs, callback); |
| 444 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles, | 461 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles, |
| 445 prefs, callback); | 462 prefs, callback); |
| 446 download_default_directory_.Init(prefs::kDownloadDefaultDirectory, | 463 download_default_directory_.Init(prefs::kDownloadDefaultDirectory, |
| 447 prefs, callback); | 464 prefs, callback); |
| 448 select_file_last_directory_.Init(prefs::kSelectFileLastDirectory, | 465 select_file_last_directory_.Init(prefs::kSelectFileLastDirectory, |
| 449 prefs, callback); | 466 prefs, callback); |
| 450 save_file_default_directory_.Init(prefs::kSaveFileDefaultDirectory, | 467 save_file_default_directory_.Init(prefs::kSaveFileDefaultDirectory, |
| 451 prefs, callback); | 468 prefs, callback); |
| 469 touch_hud_projection_enabled_.Init(prefs::kTouchHudProjectionEnabled, |
| 470 prefs, callback); |
| 452 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, | 471 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, |
| 453 prefs, callback); | 472 prefs, callback); |
| 454 preferred_languages_.Init(prefs::kLanguagePreferredLanguages, | 473 preferred_languages_.Init(prefs::kLanguagePreferredLanguages, |
| 455 prefs, callback); | 474 prefs, callback); |
| 456 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, callback); | 475 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, callback); |
| 457 enabled_extension_imes_.Init(prefs::kLanguageEnabledExtensionImes, | 476 enabled_extension_imes_.Init(prefs::kLanguageEnabledExtensionImes, |
| 458 prefs, callback); | 477 prefs, callback); |
| 459 current_input_method_.Init(prefs::kLanguageCurrentInputMethod, | 478 current_input_method_.Init(prefs::kLanguageCurrentInputMethod, |
| 460 prefs, callback); | 479 prefs, callback); |
| 461 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod, | 480 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod, |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 if (!pref_name || *pref_name == prefs::kSaveFileDefaultDirectory) { | 714 if (!pref_name || *pref_name == prefs::kSaveFileDefaultDirectory) { |
| 696 const base::FilePath pref_path = save_file_default_directory_.GetValue(); | 715 const base::FilePath pref_path = save_file_default_directory_.GetValue(); |
| 697 // This pref can contain a Drive path, which needs to be updated due to | 716 // This pref can contain a Drive path, which needs to be updated due to |
| 698 // namespaces introduced by crbug.com/174233. | 717 // namespaces introduced by crbug.com/174233. |
| 699 // TODO(haruki): Remove this when migration completes. crbug.com/229304. | 718 // TODO(haruki): Remove this when migration completes. crbug.com/229304. |
| 700 if (drive::util::NeedsNamespaceMigration(pref_path)) { | 719 if (drive::util::NeedsNamespaceMigration(pref_path)) { |
| 701 prefs_->SetFilePath(prefs::kSaveFileDefaultDirectory, | 720 prefs_->SetFilePath(prefs::kSaveFileDefaultDirectory, |
| 702 drive::util::ConvertToMyDriveNamespace(pref_path)); | 721 drive::util::ConvertToMyDriveNamespace(pref_path)); |
| 703 } | 722 } |
| 704 } | 723 } |
| 724 if (!pref_name || *pref_name == prefs::kTouchHudProjectionEnabled) { |
| 725 const bool enabled = touch_hud_projection_enabled_.GetValue(); |
| 726 ash::Shell::GetInstance()->SetTouchHudProjectionEnabled(enabled); |
| 727 } |
| 705 | 728 |
| 706 if (!pref_name || *pref_name == prefs::kLanguagePreferredLanguages) { | 729 if (!pref_name || *pref_name == prefs::kLanguagePreferredLanguages) { |
| 707 // Unlike kLanguagePreloadEngines and some other input method | 730 // Unlike kLanguagePreloadEngines and some other input method |
| 708 // preferencs, we don't need to send this to ibus-daemon. | 731 // preferencs, we don't need to send this to ibus-daemon. |
| 709 } | 732 } |
| 710 | 733 |
| 711 if (!pref_name || *pref_name == prefs::kLanguageXkbAutoRepeatEnabled) { | 734 if (!pref_name || *pref_name == prefs::kLanguageXkbAutoRepeatEnabled) { |
| 712 const bool enabled = xkb_auto_repeat_enabled_.GetValue(); | 735 const bool enabled = xkb_auto_repeat_enabled_.GetValue(); |
| 713 input_method::XKeyboard::SetAutoRepeatEnabled(enabled); | 736 input_method::XKeyboard::SetAutoRepeatEnabled(enabled); |
| 714 } | 737 } |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 return; | 1043 return; |
| 1021 | 1044 |
| 1022 input_method::AutoRepeatRate rate; | 1045 input_method::AutoRepeatRate rate; |
| 1023 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); | 1046 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); |
| 1024 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); | 1047 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); |
| 1025 DCHECK(rate.initial_delay_in_ms > 0); | 1048 DCHECK(rate.initial_delay_in_ms > 0); |
| 1026 DCHECK(rate.repeat_interval_in_ms > 0); | 1049 DCHECK(rate.repeat_interval_in_ms > 0); |
| 1027 input_method::XKeyboard::SetAutoRepeatRate(rate); | 1050 input_method::XKeyboard::SetAutoRepeatRate(rate); |
| 1028 } | 1051 } |
| 1029 | 1052 |
| 1053 void Preferences::OnTouchHudProjectionToggled(bool enabled) { |
| 1054 if (touch_hud_projection_enabled_.GetValue() == enabled) |
| 1055 return; |
| 1056 |
| 1057 touch_hud_projection_enabled_.SetValue(enabled); |
| 1058 } |
| 1059 |
| 1030 } // namespace chromeos | 1060 } // namespace chromeos |
| OLD | NEW |