Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Side by Side Diff: chrome/browser/chromeos/preferences.cc

Issue 15381003: Use helper DeviceChangeHandler to call mousecontrol/tpcontrol whenever a device is attached. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/preferences.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 namespace chromeos { 42 namespace chromeos {
43 43
44 static const char kFallbackInputMethodLocale[] = "en-US"; 44 static const char kFallbackInputMethodLocale[] = "en-US";
45 45
46 Preferences::Preferences() 46 Preferences::Preferences()
47 : prefs_(NULL), 47 : prefs_(NULL),
48 input_method_manager_(input_method::InputMethodManager::Get()) { 48 input_method_manager_(input_method::InputMethodManager::Get()) {
49 } 49 }
50 50
51 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) 51 Preferences::Preferences(input_method::InputMethodManager* input_method_manager)
52 : input_method_manager_(input_method_manager) { 52 : prefs_(NULL),
xiyuan 2013/05/21 02:01:44 Good catch.
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::RegisterPrefs(PrefRegistrySimple* registry) { 61 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) {
61 registry->RegisterBooleanPref(prefs::kHighContrastEnabled, false); 62 registry->RegisterBooleanPref(prefs::kHighContrastEnabled, false);
62 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); 63 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false);
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 void Preferences::Init(PrefServiceSyncable* prefs) { 519 void Preferences::Init(PrefServiceSyncable* prefs) {
519 InitUserPrefs(prefs); 520 InitUserPrefs(prefs);
520 521
521 // This causes OnIsSyncingChanged to be called when the value of 522 // This causes OnIsSyncingChanged to be called when the value of
522 // PrefService::IsSyncing() changes. 523 // PrefService::IsSyncing() changes.
523 prefs->AddObserver(this); 524 prefs->AddObserver(this);
524 525
525 // Initialize preferences to currently saved state. 526 // Initialize preferences to currently saved state.
526 NotifyPrefChanged(NULL); 527 NotifyPrefChanged(NULL);
527 528
529 // Listen to changes in device hierarchy.
530 pointer_device_observer_.reset(new system::PointerDeviceObserver());
531 pointer_device_observer_->AddObserver(this);
532 pointer_device_observer_->Init();
533
528 // If a guest is logged in, initialize the prefs as if this is the first 534 // If a guest is logged in, initialize the prefs as if this is the first
529 // login. 535 // login.
530 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { 536 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) {
531 LoginUtils::Get()->SetFirstLoginPrefs(prefs); 537 LoginUtils::Get()->SetFirstLoginPrefs(prefs);
532 } 538 }
533 } 539 }
534 540
535 void Preferences::InitUserPrefsForTesting(PrefServiceSyncable* prefs) { 541 void Preferences::InitUserPrefsForTesting(PrefServiceSyncable* prefs) {
536 InitUserPrefs(prefs); 542 InitUserPrefs(prefs);
537 } 543 }
538 544
539 void Preferences::SetInputMethodListForTesting() { 545 void Preferences::SetInputMethodListForTesting() {
540 SetInputMethodList(); 546 SetInputMethodList();
541 } 547 }
542 548
543 void Preferences::OnPreferenceChanged(const std::string& pref_name) { 549 void Preferences::OnPreferenceChanged(const std::string& pref_name) {
544 NotifyPrefChanged(&pref_name); 550 NotifyPrefChanged(&pref_name);
545 } 551 }
546 552
547 void Preferences::NotifyPrefChanged(const std::string* pref_name) { 553 void Preferences::SetTouchpadPrefs(const std::string* pref_name) {
548 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) { 554 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) {
549 const bool enabled = tap_to_click_enabled_.GetValue(); 555 const bool enabled = tap_to_click_enabled_.GetValue();
550 system::touchpad_settings::SetTapToClick(enabled); 556 system::touchpad_settings::SetTapToClick(enabled);
551 if (pref_name) 557 if (pref_name)
552 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled); 558 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled);
553 else 559 else
554 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Started", enabled); 560 UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Started", enabled);
555 561
556 // Save owner preference in local state to use on login screen. 562 // Save owner preference in local state to use on login screen.
557 if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { 563 if (chromeos::UserManager::Get()->IsCurrentUserOwner()) {
(...skipping 19 matching lines...) Expand all
577 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerClick.Started", enabled); 583 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerClick.Started", enabled);
578 } 584 }
579 if (!pref_name || *pref_name == prefs::kEnableTouchpadThreeFingerSwipe) { 585 if (!pref_name || *pref_name == prefs::kEnableTouchpadThreeFingerSwipe) {
580 const bool enabled = three_finger_swipe_enabled_.GetValue(); 586 const bool enabled = three_finger_swipe_enabled_.GetValue();
581 system::touchpad_settings::SetThreeFingerSwipe(enabled); 587 system::touchpad_settings::SetThreeFingerSwipe(enabled);
582 if (pref_name) 588 if (pref_name)
583 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Changed", enabled); 589 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Changed", enabled);
584 else 590 else
585 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Started", enabled); 591 UMA_HISTOGRAM_BOOLEAN("Touchpad.ThreeFingerSwipe.Started", enabled);
586 } 592 }
587 if (!pref_name || *pref_name == prefs::kNaturalScroll) { 593 if (!pref_name || *pref_name == prefs::kTouchpadSensitivity) {
588 // Force natural scroll default if we've sync'd and if the cmd line arg is 594 const int sensitivity = touchpad_sensitivity_.GetValue();
589 // set. 595 system::touchpad_settings::SetSensitivity(sensitivity);
590 ForceNaturalScrollDefault(); 596 if (pref_name) {
597 UMA_HISTOGRAM_CUSTOM_COUNTS(
598 "Touchpad.Sensitivity.Changed", sensitivity, 1, 5, 5);
599 } else {
600 UMA_HISTOGRAM_CUSTOM_COUNTS(
601 "Touchpad.Sensitivity.Started", sensitivity, 1, 5, 5);
602 }
603 }
604 }
591 605
592 const bool enabled = natural_scroll_.GetValue(); 606 void Preferences::SetMousePrefs(const std::string* pref_name) {
593 DVLOG(1) << "Natural scroll set to " << enabled;
594 ui::SetNaturalScroll(enabled);
595 if (pref_name)
596 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Changed", enabled);
597 else
598 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Started", enabled);
599 }
600 if (!pref_name || *pref_name == prefs::kMouseSensitivity) { 607 if (!pref_name || *pref_name == prefs::kMouseSensitivity) {
601 const int sensitivity = mouse_sensitivity_.GetValue(); 608 const int sensitivity = mouse_sensitivity_.GetValue();
602 system::mouse_settings::SetSensitivity(sensitivity); 609 system::mouse_settings::SetSensitivity(sensitivity);
603 if (pref_name) { 610 if (pref_name) {
604 UMA_HISTOGRAM_CUSTOM_COUNTS( 611 UMA_HISTOGRAM_CUSTOM_COUNTS(
605 "Mouse.Sensitivity.Changed", sensitivity, 1, 5, 5); 612 "Mouse.Sensitivity.Changed", sensitivity, 1, 5, 5);
606 } else { 613 } else {
607 UMA_HISTOGRAM_CUSTOM_COUNTS( 614 UMA_HISTOGRAM_CUSTOM_COUNTS(
608 "Mouse.Sensitivity.Started", sensitivity, 1, 5, 5); 615 "Mouse.Sensitivity.Started", sensitivity, 1, 5, 5);
609 } 616 }
610 } 617 }
611 if (!pref_name || *pref_name == prefs::kTouchpadSensitivity) {
612 const int sensitivity = touchpad_sensitivity_.GetValue();
613 system::touchpad_settings::SetSensitivity(sensitivity);
614 if (pref_name) {
615 UMA_HISTOGRAM_CUSTOM_COUNTS(
616 "Touchpad.Sensitivity.Changed", sensitivity, 1, 5, 5);
617 } else {
618 UMA_HISTOGRAM_CUSTOM_COUNTS(
619 "Touchpad.Sensitivity.Started", sensitivity, 1, 5, 5);
620 }
621 }
622 if (!pref_name || *pref_name == prefs::kPrimaryMouseButtonRight) { 618 if (!pref_name || *pref_name == prefs::kPrimaryMouseButtonRight) {
623 const bool right = primary_mouse_button_right_.GetValue(); 619 const bool right = primary_mouse_button_right_.GetValue();
624 system::mouse_settings::SetPrimaryButtonRight(right); 620 system::mouse_settings::SetPrimaryButtonRight(right);
625 if (pref_name) 621 if (pref_name)
626 UMA_HISTOGRAM_BOOLEAN("Mouse.PrimaryButtonRight.Changed", right); 622 UMA_HISTOGRAM_BOOLEAN("Mouse.PrimaryButtonRight.Changed", right);
627 else 623 else
628 UMA_HISTOGRAM_BOOLEAN("Mouse.PrimaryButtonRight.Started", right); 624 UMA_HISTOGRAM_BOOLEAN("Mouse.PrimaryButtonRight.Started", right);
629 625
630 // Save owner preference in local state to use on login screen. 626 // Save owner preference in local state to use on login screen.
631 if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { 627 if (chromeos::UserManager::Get()->IsCurrentUserOwner()) {
632 PrefService* prefs = g_browser_process->local_state(); 628 PrefService* prefs = g_browser_process->local_state();
633 if (prefs->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight) != right) 629 if (prefs->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight) != right)
634 prefs->SetBoolean(prefs::kOwnerPrimaryMouseButtonRight, right); 630 prefs->SetBoolean(prefs::kOwnerPrimaryMouseButtonRight, right);
635 } 631 }
636 } 632 }
633 }
634
635 void Preferences::NotifyPrefChanged(const std::string* pref_name) {
636 SetTouchpadPrefs(pref_name);
637 SetMousePrefs(pref_name);
638
639 if (!pref_name || *pref_name == prefs::kNaturalScroll) {
640 // Force natural scroll default if we've sync'd and if the cmd line arg is
641 // set.
642 ForceNaturalScrollDefault();
643
644 const bool enabled = natural_scroll_.GetValue();
645 DVLOG(1) << "Natural scroll set to " << enabled;
646 ui::SetNaturalScroll(enabled);
647 if (pref_name)
648 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Changed", enabled);
649 else
650 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Started", enabled);
651 }
637 if (!pref_name || *pref_name == prefs::kDownloadDefaultDirectory) { 652 if (!pref_name || *pref_name == prefs::kDownloadDefaultDirectory) {
638 const base::FilePath pref_path = download_default_directory_.GetValue(); 653 const base::FilePath pref_path = download_default_directory_.GetValue();
639 // TODO(haruki): Remove this when migration completes. crbug.com/229304. 654 // TODO(haruki): Remove this when migration completes. crbug.com/229304.
640 if (drive::util::NeedsNamespaceMigration(pref_path)) { 655 if (drive::util::NeedsNamespaceMigration(pref_path)) {
641 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory, 656 prefs_->SetFilePath(prefs::kDownloadDefaultDirectory,
642 drive::util::ConvertToMyDriveNamespace(pref_path)); 657 drive::util::ConvertToMyDriveNamespace(pref_path));
643 } 658 }
644 659
645 const bool default_download_to_drive = drive::util::IsUnderDriveMountPoint( 660 const bool default_download_to_drive = drive::util::IsUnderDriveMountPoint(
646 download_default_directory_.GetValue()); 661 download_default_directory_.GetValue());
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 if (CommandLine::ForCurrentProcess()->HasSwitch( 897 if (CommandLine::ForCurrentProcess()->HasSwitch(
883 switches::kNaturalScrollDefault) && 898 switches::kNaturalScrollDefault) &&
884 prefs_->IsSyncing() && 899 prefs_->IsSyncing() &&
885 !prefs_->GetUserPrefValue(prefs::kNaturalScroll)) { 900 !prefs_->GetUserPrefValue(prefs::kNaturalScroll)) {
886 DVLOG(1) << "Natural scroll forced to true"; 901 DVLOG(1) << "Natural scroll forced to true";
887 natural_scroll_.SetValue(true); 902 natural_scroll_.SetValue(true);
888 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Forced", true); 903 UMA_HISTOGRAM_BOOLEAN("Touchpad.NaturalScroll.Forced", true);
889 } 904 }
890 } 905 }
891 906
907 void Preferences::TouchpadExists(bool exists) {
908 SetTouchpadPrefs(NULL);
909 }
910
911 void Preferences::MouseExists(bool exists) {
912 SetMousePrefs(NULL);
913 }
914
892 void Preferences::SetLanguageConfigBoolean(const char* section, 915 void Preferences::SetLanguageConfigBoolean(const char* section,
893 const char* name, 916 const char* name,
894 bool value) { 917 bool value) {
895 input_method::InputMethodConfigValue config; 918 input_method::InputMethodConfigValue config;
896 config.type = input_method::InputMethodConfigValue::kValueTypeBool; 919 config.type = input_method::InputMethodConfigValue::kValueTypeBool;
897 config.bool_value = value; 920 config.bool_value = value;
898 input_method_manager_->SetInputMethodConfig(section, name, config); 921 input_method_manager_->SetInputMethodConfig(section, name, config);
899 } 922 }
900 923
901 void Preferences::SetLanguageConfigInteger(const char* section, 924 void Preferences::SetLanguageConfigInteger(const char* section,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 1007
985 input_method::AutoRepeatRate rate; 1008 input_method::AutoRepeatRate rate;
986 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); 1009 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue();
987 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); 1010 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue();
988 DCHECK(rate.initial_delay_in_ms > 0); 1011 DCHECK(rate.initial_delay_in_ms > 0);
989 DCHECK(rate.repeat_interval_in_ms > 0); 1012 DCHECK(rate.repeat_interval_in_ms > 0);
990 input_method::XKeyboard::SetAutoRepeatRate(rate); 1013 input_method::XKeyboard::SetAutoRepeatRate(rate);
991 } 1014 }
992 1015
993 } // namespace chromeos 1016 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/preferences.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698