Chromium Code Reviews| 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 30 matching lines...) Expand all Loading... | |
| 41 | 41 |
| 42 Preferences::Preferences() | 42 Preferences::Preferences() |
| 43 : prefs_(NULL), | 43 : prefs_(NULL), |
| 44 input_method_manager_(input_method::GetInputMethodManager()) { | 44 input_method_manager_(input_method::GetInputMethodManager()) { |
| 45 } | 45 } |
| 46 | 46 |
| 47 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) | 47 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) |
| 48 : input_method_manager_(input_method_manager) { | 48 : input_method_manager_(input_method_manager) { |
| 49 } | 49 } |
| 50 | 50 |
| 51 Preferences::~Preferences() {} | 51 Preferences::~Preferences() { |
| 52 prefs_->RemoveObserver(this); | |
| 53 } | |
| 52 | 54 |
| 53 // static | 55 // static |
| 54 void Preferences::RegisterUserPrefs(PrefService* prefs) { | 56 void Preferences::RegisterUserPrefs(PrefService* prefs) { |
| 55 std::string hardware_keyboard_id; | 57 std::string hardware_keyboard_id; |
| 56 // TODO(yusukes): Remove the runtime hack. | 58 // TODO(yusukes): Remove the runtime hack. |
| 57 if (base::chromeos::IsRunningOnChromeOS()) { | 59 if (base::chromeos::IsRunningOnChromeOS()) { |
| 58 input_method::InputMethodManager* manager = | 60 input_method::InputMethodManager* manager = |
| 59 input_method::GetInputMethodManager(); | 61 input_method::GetInputMethodManager(); |
| 60 if (manager) { | 62 if (manager) { |
| 61 hardware_keyboard_id = | 63 hardware_keyboard_id = |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 380 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); | 382 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); |
| 381 | 383 |
| 382 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); | 384 enable_screen_lock_.Init(prefs::kEnableScreenLock, prefs, callback); |
| 383 | 385 |
| 384 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); | 386 enable_drm_.Init(prefs::kEnableCrosDRM, prefs, callback); |
| 385 } | 387 } |
| 386 | 388 |
| 387 void Preferences::Init(PrefService* prefs) { | 389 void Preferences::Init(PrefService* prefs) { |
| 388 InitUserPrefs(prefs); | 390 InitUserPrefs(prefs); |
| 389 | 391 |
| 392 // This causes OnIsSyncingChanged to be called when the value of | |
|
sky
2012/12/20 16:29:17
OnIsSyncingChanged()
| |
| 393 // PrefService::IsSyncing() changes. | |
| 394 prefs->AddObserver(this); | |
| 395 | |
| 390 // Initialize preferences to currently saved state. | 396 // Initialize preferences to currently saved state. |
| 391 NotifyPrefChanged(NULL); | 397 NotifyPrefChanged(NULL); |
| 392 | 398 |
| 393 // If a guest is logged in, initialize the prefs as if this is the first | 399 // If a guest is logged in, initialize the prefs as if this is the first |
| 394 // login. | 400 // login. |
| 395 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { | 401 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { |
| 396 LoginUtils::Get()->SetFirstLoginPrefs(prefs); | 402 LoginUtils::Get()->SetFirstLoginPrefs(prefs); |
| 397 } | 403 } |
| 398 } | 404 } |
| 399 | 405 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 443 } | 449 } |
| 444 if (!pref_name || *pref_name == prefs::kEnableTouchpadThreeFingerSwipe) { | 450 if (!pref_name || *pref_name == prefs::kEnableTouchpadThreeFingerSwipe) { |
| 445 const bool enabled = three_finger_swipe_enabled_.GetValue(); | 451 const bool enabled = three_finger_swipe_enabled_.GetValue(); |
| 446 system::touchpad_settings::SetThreeFingerSwipe(enabled); | 452 system::touchpad_settings::SetThreeFingerSwipe(enabled); |
| 447 if (pref_name) | 453 if (pref_name) |
| 448 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Changed", enabled); | 454 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Changed", enabled); |
| 449 else | 455 else |
| 450 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Started", enabled); | 456 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Started", enabled); |
| 451 } | 457 } |
| 452 if (!pref_name || *pref_name == prefs::kNaturalScroll) { | 458 if (!pref_name || *pref_name == prefs::kNaturalScroll) { |
| 453 // Force natural scroll to on if kNaturalScrollDefault is specified on the | 459 // Force natural scroll default if we've sync'd and if the cmd line arg is |
| 454 // cmd line. | 460 // set. |
| 455 if (CommandLine::ForCurrentProcess()->HasSwitch( | 461 ForceNaturalScrollDefault(); |
|
sky
2012/12/20 16:29:17
If you invoke ForceNaturalScrollDefault() here and
xiyuan
2012/12/20 17:07:49
ForceNaturalScrollDefault just attempts to provide
| |
| 456 switches::kNaturalScrollDefault) && | |
| 457 !pref_name && | |
| 458 !prefs_->GetUserPrefValue(prefs::kNaturalScroll)) { | |
| 459 natural_scroll_.SetValue(true); | |
| 460 DVLOG(1) << "Natural scroll forced to true"; | |
| 461 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Forced", true); | |
| 462 } | |
| 463 | 462 |
| 464 const bool enabled = natural_scroll_.GetValue(); | 463 const bool enabled = natural_scroll_.GetValue(); |
| 465 DVLOG(1) << "Natural scroll set to " << enabled; | 464 DVLOG(1) << "Natural scroll set to " << enabled; |
| 466 ui::SetNaturalScroll(enabled); | 465 ui::SetNaturalScroll(enabled); |
| 467 if (pref_name) | 466 if (pref_name) |
| 468 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Changed", enabled); | 467 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Changed", enabled); |
| 469 else | 468 else |
| 470 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Started", enabled); | 469 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Started", enabled); |
| 471 } | 470 } |
| 472 if (!pref_name || *pref_name == prefs::kMouseSensitivity) { | 471 if (!pref_name || *pref_name == prefs::kMouseSensitivity) { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 670 if (disable_drive_.GetValue()) { | 669 if (disable_drive_.GetValue()) { |
| 671 if (drive::util::IsUnderDriveMountPoint( | 670 if (drive::util::IsUnderDriveMountPoint( |
| 672 download_default_directory_.GetValue())) { | 671 download_default_directory_.GetValue())) { |
| 673 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, | 672 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, |
| 674 download_util::GetDefaultDownloadDirectory()); | 673 download_util::GetDefaultDownloadDirectory()); |
| 675 } | 674 } |
| 676 } | 675 } |
| 677 } | 676 } |
| 678 } | 677 } |
| 679 | 678 |
| 679 void Preferences::OnIsSyncingChanged() { | |
| 680 DVLOG(1) << "OnIsSyncingChanged"; | |
| 681 ForceNaturalScrollDefault(); | |
| 682 } | |
| 683 | |
| 684 void Preferences::ForceNaturalScrollDefault() { | |
| 685 DVLOG(1) << "ForceNaturalScrollDefault"; | |
| 686 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
| 687 switches::kNaturalScrollDefault) && | |
| 688 prefs_->IsSyncing() && | |
| 689 !prefs_->GetUserPrefValue(prefs::kNaturalScroll)) { | |
| 690 DVLOG(1) << "Natural scroll forced to true"; | |
| 691 natural_scroll_.SetValue(true); | |
| 692 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Forced", true); | |
| 693 } | |
| 694 } | |
| 695 | |
| 680 void Preferences::SetLanguageConfigBoolean(const char* section, | 696 void Preferences::SetLanguageConfigBoolean(const char* section, |
| 681 const char* name, | 697 const char* name, |
| 682 bool value) { | 698 bool value) { |
| 683 input_method::InputMethodConfigValue config; | 699 input_method::InputMethodConfigValue config; |
| 684 config.type = input_method::InputMethodConfigValue::kValueTypeBool; | 700 config.type = input_method::InputMethodConfigValue::kValueTypeBool; |
| 685 config.bool_value = value; | 701 config.bool_value = value; |
| 686 input_method_manager_->SetInputMethodConfig(section, name, config); | 702 input_method_manager_->SetInputMethodConfig(section, name, config); |
| 687 } | 703 } |
| 688 | 704 |
| 689 void Preferences::SetLanguageConfigInteger(const char* section, | 705 void Preferences::SetLanguageConfigInteger(const char* section, |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 768 | 784 |
| 769 input_method::AutoRepeatRate rate; | 785 input_method::AutoRepeatRate rate; |
| 770 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); | 786 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); |
| 771 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); | 787 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); |
| 772 DCHECK(rate.initial_delay_in_ms > 0); | 788 DCHECK(rate.initial_delay_in_ms > 0); |
| 773 DCHECK(rate.repeat_interval_in_ms > 0); | 789 DCHECK(rate.repeat_interval_in_ms > 0); |
| 774 input_method::XKeyboard::SetAutoRepeatRate(rate); | 790 input_method::XKeyboard::SetAutoRepeatRate(rate); |
| 775 } | 791 } |
| 776 | 792 |
| 777 } // namespace chromeos | 793 } // namespace chromeos |
| OLD | NEW |