Commit 9f818c41 authored by Qiang Xu's avatar Qiang Xu Committed by Commit Bot

cros: move TapToClick prefs to ash

changes:
* Move kTapToClickEnabled and kOwnerTapToClickEnabled handling to ash
* In this CL, above pref registrations are still in chrome side because
  ash side doesn't have device owner info yet.

TBR=stevenjb@chromium.org

Bug: 817643
Test: manual and test coverage
Change-Id: I6b11eb65a40968eada67ebf2e8b4fb3f1f0eaddc
Reviewed-on: https://chromium-review.googlesource.com/1116210
Commit-Queue: Qiang Xu <warx@google.com>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570842}
parent c5eab600
...@@ -266,6 +266,12 @@ const char kSystemBluetoothAdapterEnabled[] = ...@@ -266,6 +266,12 @@ const char kSystemBluetoothAdapterEnabled[] =
// A boolean pref which determines whether tap-dragging is enabled. // A boolean pref which determines whether tap-dragging is enabled.
const char kTapDraggingEnabled[] = "settings.touchpad.enable_tap_dragging"; const char kTapDraggingEnabled[] = "settings.touchpad.enable_tap_dragging";
// A boolean pref set to true if touchpad tap-to-click is enabled.
const char kTapToClickEnabled[] = "settings.touchpad.enable_tap_to_click";
// Copy of owner tap-to-click option to use on login screen.
const char kOwnerTapToClickEnabled[] = "owner.touchpad.enable_tap_to_click";
// Boolean prefs for the status of the touchscreen and the touchpad. // Boolean prefs for the status of the touchscreen and the touchpad.
const char kTouchpadEnabled[] = "events.touch_pad.enabled"; const char kTouchpadEnabled[] = "events.touch_pad.enabled";
const char kTouchscreenEnabled[] = "events.touch_screen.enabled"; const char kTouchscreenEnabled[] = "events.touch_screen.enabled";
......
...@@ -102,6 +102,8 @@ ASH_PUBLIC_EXPORT extern const char kUserBluetoothAdapterEnabled[]; ...@@ -102,6 +102,8 @@ ASH_PUBLIC_EXPORT extern const char kUserBluetoothAdapterEnabled[];
ASH_PUBLIC_EXPORT extern const char kSystemBluetoothAdapterEnabled[]; ASH_PUBLIC_EXPORT extern const char kSystemBluetoothAdapterEnabled[];
ASH_PUBLIC_EXPORT extern const char kTapDraggingEnabled[]; ASH_PUBLIC_EXPORT extern const char kTapDraggingEnabled[];
ASH_PUBLIC_EXPORT extern const char kTapToClickEnabled[];
ASH_PUBLIC_EXPORT extern const char kOwnerTapToClickEnabled[];
ASH_PUBLIC_EXPORT extern const char kTouchpadEnabled[]; ASH_PUBLIC_EXPORT extern const char kTouchpadEnabled[];
ASH_PUBLIC_EXPORT extern const char kTouchscreenEnabled[]; ASH_PUBLIC_EXPORT extern const char kTouchscreenEnabled[];
......
...@@ -257,7 +257,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry, bool for_test) { ...@@ -257,7 +257,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry, bool for_test) {
PaletteTray::RegisterProfilePrefs(registry); PaletteTray::RegisterProfilePrefs(registry);
PaletteWelcomeBubble::RegisterProfilePrefs(registry); PaletteWelcomeBubble::RegisterProfilePrefs(registry);
ShelfController::RegisterProfilePrefs(registry); ShelfController::RegisterProfilePrefs(registry);
TouchDevicesController::RegisterProfilePrefs(registry); TouchDevicesController::RegisterProfilePrefs(registry, for_test);
CapsLockNotificationController::RegisterProfilePrefs(registry, for_test); CapsLockNotificationController::RegisterProfilePrefs(registry, for_test);
} }
...@@ -415,6 +415,7 @@ void Shell::RegisterLocalStatePrefs(PrefRegistrySimple* registry, ...@@ -415,6 +415,7 @@ void Shell::RegisterLocalStatePrefs(PrefRegistrySimple* registry,
WallpaperController::RegisterLocalStatePrefs(registry); WallpaperController::RegisterLocalStatePrefs(registry);
BluetoothPowerController::RegisterLocalStatePrefs(registry); BluetoothPowerController::RegisterLocalStatePrefs(registry);
DetachableBaseHandler::RegisterPrefs(registry); DetachableBaseHandler::RegisterPrefs(registry);
TouchDevicesController::RegisterLocalStatePrefs(registry, for_test);
// Note: DisplayPrefs are registered in chrome in AshShellInit::RegisterPrefs // Note: DisplayPrefs are registered in chrome in AshShellInit::RegisterPrefs
// (see comment there for details). // (see comment there for details).
if (for_test) if (for_test)
......
...@@ -52,8 +52,20 @@ PrefService* GetActivePrefService() { ...@@ -52,8 +52,20 @@ PrefService* GetActivePrefService() {
} // namespace } // namespace
// static // static
void TouchDevicesController::RegisterProfilePrefs( void TouchDevicesController::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) { PrefRegistrySimple* registry,
bool for_test) {
// TODO(jamescook|xiyuan): move ownership to ash once user session info could
// distinguish owner and non-owner (http://crbug.com/857103).
if (for_test)
registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true);
else
registry->RegisterForeignPref(prefs::kOwnerTapToClickEnabled);
}
// static
void TouchDevicesController::RegisterProfilePrefs(PrefRegistrySimple* registry,
bool for_test) {
registry->RegisterBooleanPref( registry->RegisterBooleanPref(
prefs::kTapDraggingEnabled, false, prefs::kTapDraggingEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF | user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF |
...@@ -61,6 +73,16 @@ void TouchDevicesController::RegisterProfilePrefs( ...@@ -61,6 +73,16 @@ void TouchDevicesController::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kTouchpadEnabled, PrefRegistry::PUBLIC); registry->RegisterBooleanPref(prefs::kTouchpadEnabled, PrefRegistry::PUBLIC);
registry->RegisterBooleanPref(prefs::kTouchscreenEnabled, registry->RegisterBooleanPref(prefs::kTouchscreenEnabled,
PrefRegistry::PUBLIC); PrefRegistry::PUBLIC);
// TODO(jamescook|xiyuan): move ownership to ash once user session info could
// distinguish owner and non-owner (http://crbug.com/857103).
if (for_test) {
registry->RegisterBooleanPref(
prefs::kTapToClickEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
} else {
registry->RegisterForeignPref(prefs::kTapToClickEnabled);
}
} }
TouchDevicesController::TouchDevicesController() { TouchDevicesController::TouchDevicesController() {
...@@ -133,6 +155,8 @@ void TouchDevicesController::OnUserSessionAdded(const AccountId& account_id) { ...@@ -133,6 +155,8 @@ void TouchDevicesController::OnUserSessionAdded(const AccountId& account_id) {
uma_record_callback_ = base::BindOnce([](PrefService* prefs) { uma_record_callback_ = base::BindOnce([](PrefService* prefs) {
UMA_HISTOGRAM_BOOLEAN("Touchpad.TapDragging.Started", UMA_HISTOGRAM_BOOLEAN("Touchpad.TapDragging.Started",
prefs->GetBoolean(prefs::kTapDraggingEnabled)); prefs->GetBoolean(prefs::kTapDraggingEnabled));
UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Started",
prefs->GetBoolean(prefs::kTapToClickEnabled));
}); });
} }
...@@ -156,6 +180,10 @@ void TouchDevicesController::ObservePrefs(PrefService* prefs) { ...@@ -156,6 +180,10 @@ void TouchDevicesController::ObservePrefs(PrefService* prefs) {
prefs::kTapDraggingEnabled, prefs::kTapDraggingEnabled,
base::BindRepeating(&TouchDevicesController::UpdateTapDraggingEnabled, base::BindRepeating(&TouchDevicesController::UpdateTapDraggingEnabled,
base::Unretained(this))); base::Unretained(this)));
pref_change_registrar_->Add(
prefs::kTapToClickEnabled,
base::BindRepeating(&TouchDevicesController::UpdateTapToClickEnabled,
base::Unretained(this)));
pref_change_registrar_->Add( pref_change_registrar_->Add(
prefs::kTouchpadEnabled, prefs::kTouchpadEnabled,
base::BindRepeating(&TouchDevicesController::UpdateTouchpadEnabled, base::BindRepeating(&TouchDevicesController::UpdateTouchpadEnabled,
...@@ -166,6 +194,7 @@ void TouchDevicesController::ObservePrefs(PrefService* prefs) { ...@@ -166,6 +194,7 @@ void TouchDevicesController::ObservePrefs(PrefService* prefs) {
base::Unretained(this))); base::Unretained(this)));
// Load current state. // Load current state.
UpdateTapDraggingEnabled(); UpdateTapDraggingEnabled();
UpdateTapToClickEnabled();
UpdateTouchpadEnabled(); UpdateTouchpadEnabled();
UpdateTouchscreenEnabled(); UpdateTouchscreenEnabled();
} }
...@@ -187,6 +216,23 @@ void TouchDevicesController::UpdateTapDraggingEnabled() { ...@@ -187,6 +216,23 @@ void TouchDevicesController::UpdateTapDraggingEnabled() {
GetInputDeviceControllerClient()->SetTapDragging(enabled); GetInputDeviceControllerClient()->SetTapDragging(enabled);
} }
void TouchDevicesController::UpdateTapToClickEnabled() {
PrefService* prefs = GetActivePrefService();
const bool enabled = prefs->GetBoolean(prefs::kTapToClickEnabled);
if (tap_to_click_enabled_ == enabled)
return;
tap_to_click_enabled_ = enabled;
UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled);
if (!GetInputDeviceControllerClient())
return; // Happens in tests.
GetInputDeviceControllerClient()->SetTapToClick(enabled);
}
void TouchDevicesController::UpdateTouchpadEnabled() { void TouchDevicesController::UpdateTouchpadEnabled() {
if (!GetInputDeviceControllerClient()) if (!GetInputDeviceControllerClient())
return; // Happens in tests. return; // Happens in tests.
......
...@@ -33,7 +33,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver { ...@@ -33,7 +33,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver {
TouchDevicesController(); TouchDevicesController();
~TouchDevicesController() override; ~TouchDevicesController() override;
static void RegisterProfilePrefs(PrefRegistrySimple* registry); static void RegisterLocalStatePrefs(PrefRegistrySimple* registry,
bool for_test);
static void RegisterProfilePrefs(PrefRegistrySimple* registry, bool for_test);
// Toggles the status of touchpad between enabled and disabled. // Toggles the status of touchpad between enabled and disabled.
void ToggleTouchpad(); void ToggleTouchpad();
...@@ -55,6 +57,7 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver { ...@@ -55,6 +57,7 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver {
void SetTouchscreenEnabled(bool enabled, TouchDeviceEnabledSource source); void SetTouchscreenEnabled(bool enabled, TouchDeviceEnabledSource source);
bool tap_dragging_enabled_for_test() { return tap_dragging_enabled_; } bool tap_dragging_enabled_for_test() { return tap_dragging_enabled_; }
bool tap_to_click_enabled_for_test() { return tap_to_click_enabled_; }
private: private:
// Overridden from SessionObserver: // Overridden from SessionObserver:
...@@ -69,6 +72,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver { ...@@ -69,6 +72,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver {
// Updates tap dragging enabled state from prefs. // Updates tap dragging enabled state from prefs.
void UpdateTapDraggingEnabled(); void UpdateTapDraggingEnabled();
// Updates tap to click enabled state from prefs.
void UpdateTapToClickEnabled();
// Updates the actual enabled/disabled status of the touchpad. // Updates the actual enabled/disabled status of the touchpad.
void UpdateTouchpadEnabled(); void UpdateTouchpadEnabled();
...@@ -83,6 +89,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver { ...@@ -83,6 +89,9 @@ class ASH_EXPORT TouchDevicesController : public SessionObserver {
// Saves the tap dragging enabled state from prefs. // Saves the tap dragging enabled state from prefs.
bool tap_dragging_enabled_ = false; bool tap_dragging_enabled_ = false;
// Saves the tap to click enabled state from prefs.
bool tap_to_click_enabled_ = true;
// The touchscreen state which is associated with the global touch device // The touchscreen state which is associated with the global touch device
// enabled source. // enabled source.
bool global_touchscreen_enabled_ = true; bool global_touchscreen_enabled_ = true;
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "ash/session/test_session_controller_client.h" #include "ash/session/test_session_controller_client.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/test/ash_test_base.h" #include "ash/test/ash_test_base.h"
#include "ash/test/ash_test_helper.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
...@@ -51,6 +52,13 @@ void SetTapDraggingEnabled(bool enabled) { ...@@ -51,6 +52,13 @@ void SetTapDraggingEnabled(bool enabled) {
prefs->CommitPendingWrite(); prefs->CommitPendingWrite();
} }
void SetTapToClickEnabled(bool enabled) {
PrefService* prefs =
Shell::Get()->session_controller()->GetLastActiveUserPrefService();
prefs->SetBoolean(prefs::kTapToClickEnabled, enabled);
prefs->CommitPendingWrite();
}
class TouchDevicesControllerSigninTest : public NoSessionAshTestBase { class TouchDevicesControllerSigninTest : public NoSessionAshTestBase {
public: public:
TouchDevicesControllerSigninTest() = default; TouchDevicesControllerSigninTest() = default;
...@@ -84,10 +92,16 @@ class TouchDevicesControllerSigninTest : public NoSessionAshTestBase { ...@@ -84,10 +92,16 @@ class TouchDevicesControllerSigninTest : public NoSessionAshTestBase {
DISALLOW_COPY_AND_ASSIGN(TouchDevicesControllerSigninTest); DISALLOW_COPY_AND_ASSIGN(TouchDevicesControllerSigninTest);
}; };
TEST_F(TouchDevicesControllerSigninTest, LocalStatePrefsAreRegistered) {
PrefService* prefs = ash_test_helper()->GetLocalStatePrefService();
EXPECT_TRUE(prefs->FindPreference(prefs::kOwnerTapToClickEnabled));
}
TEST_F(TouchDevicesControllerSigninTest, PrefsAreRegistered) { TEST_F(TouchDevicesControllerSigninTest, PrefsAreRegistered) {
PrefService* prefs = PrefService* prefs =
Shell::Get()->session_controller()->GetLastActiveUserPrefService(); Shell::Get()->session_controller()->GetLastActiveUserPrefService();
EXPECT_TRUE(prefs->FindPreference(prefs::kTapDraggingEnabled)); EXPECT_TRUE(prefs->FindPreference(prefs::kTapDraggingEnabled));
EXPECT_TRUE(prefs->FindPreference(prefs::kTapToClickEnabled));
EXPECT_TRUE(prefs->FindPreference(prefs::kTouchpadEnabled)); EXPECT_TRUE(prefs->FindPreference(prefs::kTouchpadEnabled));
EXPECT_TRUE(prefs->FindPreference(prefs::kTouchscreenEnabled)); EXPECT_TRUE(prefs->FindPreference(prefs::kTouchscreenEnabled));
} }
...@@ -108,6 +122,22 @@ TEST_F(TouchDevicesControllerSigninTest, SetTapDraggingEnabled) { ...@@ -108,6 +122,22 @@ TEST_F(TouchDevicesControllerSigninTest, SetTapDraggingEnabled) {
EXPECT_FALSE(controller->tap_dragging_enabled_for_test()); EXPECT_FALSE(controller->tap_dragging_enabled_for_test());
} }
TEST_F(TouchDevicesControllerSigninTest, SetTapToClickEnabled) {
auto* controller = Shell::Get()->touch_devices_controller();
ASSERT_TRUE(controller->tap_to_click_enabled_for_test());
SetTapToClickEnabled(false);
EXPECT_FALSE(controller->tap_to_click_enabled_for_test());
// Switch to user 2 and switch back.
SwitchActiveUser(kUser2Email);
EXPECT_TRUE(controller->tap_to_click_enabled_for_test());
SwitchActiveUser(kUser1Email);
EXPECT_FALSE(controller->tap_to_click_enabled_for_test());
SetTapToClickEnabled(true);
EXPECT_TRUE(controller->tap_to_click_enabled_for_test());
}
// Tests that touchpad enabled user pref works properly under debug accelerator. // Tests that touchpad enabled user pref works properly under debug accelerator.
TEST_F(TouchDevicesControllerSigninTest, ToggleTouchpad) { TEST_F(TouchDevicesControllerSigninTest, ToggleTouchpad) {
ASSERT_TRUE(GetUserPrefTouchpadEnabled()); ASSERT_TRUE(GetUserPrefTouchpadEnabled());
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "ash/accessibility/focus_ring_controller.h" #include "ash/accessibility/focus_ring_controller.h"
#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_features.h"
#include "ash/public/cpp/ash_pref_names.h"
#include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/shell_window_ids.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/system/tray/system_tray.h" #include "ash/system/tray/system_tray.h"
...@@ -1204,8 +1205,11 @@ void ShowLoginWizard(OobeScreen first_screen) { ...@@ -1204,8 +1205,11 @@ void ShowLoginWizard(OobeScreen first_screen) {
// login screen. // login screen.
system::InputDeviceSettings::Get()->SetPrimaryButtonRight( system::InputDeviceSettings::Get()->SetPrimaryButtonRight(
prefs->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight)); prefs->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight));
// TODO(jamescook): move to ash in OnLocalStatePrefServiceInitialized() once
// user session info could distinguish between owner and non-owner
// (http://crbug.com/857103).
system::InputDeviceSettings::Get()->SetTapToClick( system::InputDeviceSettings::Get()->SetTapToClick(
prefs->GetBoolean(prefs::kOwnerTapToClickEnabled)); prefs->GetBoolean(ash::prefs::kOwnerTapToClickEnabled));
} }
system::InputDeviceSettings::Get()->SetNaturalScroll( system::InputDeviceSettings::Get()->SetNaturalScroll(
base::CommandLine::ForCurrentProcess()->HasSwitch( base::CommandLine::ForCurrentProcess()->HasSwitch(
......
...@@ -151,8 +151,9 @@ Preferences::~Preferences() { ...@@ -151,8 +151,9 @@ Preferences::~Preferences() {
// static // static
void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { void Preferences::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false);
registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true);
// TODO(jamescook): Move ownership and registration into ash. // TODO(jamescook): Move ownership and registration into ash.
registry->RegisterBooleanPref(ash::prefs::kOwnerTapToClickEnabled, true,
PrefRegistry::PUBLIC);
registry->RegisterStringPref(prefs::kLogoutStartedLast, std::string()); registry->RegisterStringPref(prefs::kLogoutStartedLast, std::string());
registry->RegisterStringPref(prefs::kSigninScreenTimezone, std::string()); registry->RegisterStringPref(prefs::kSigninScreenTimezone, std::string());
registry->RegisterBooleanPref(prefs::kResolveDeviceTimezoneByGeolocation, registry->RegisterBooleanPref(prefs::kResolveDeviceTimezoneByGeolocation,
...@@ -189,9 +190,9 @@ void Preferences::RegisterProfilePrefs( ...@@ -189,9 +190,9 @@ void Preferences::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kPerformanceTracingEnabled, false); registry->RegisterBooleanPref(prefs::kPerformanceTracingEnabled, false);
registry->RegisterBooleanPref( registry->RegisterBooleanPref(
prefs::kTapToClickEnabled, ash::prefs::kTapToClickEnabled, true,
true, user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF |
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); PrefRegistry::PUBLIC);
registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, false); registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, false);
// This preference can only be set to true by policy or command_line flag // This preference can only be set to true by policy or command_line flag
// and it should not carry over to sessions were neither of these is set. // and it should not carry over to sessions were neither of these is set.
...@@ -487,7 +488,7 @@ void Preferences::InitUserPrefs(sync_preferences::PrefServiceSyncable* prefs) { ...@@ -487,7 +488,7 @@ void Preferences::InitUserPrefs(sync_preferences::PrefServiceSyncable* prefs) {
performance_tracing_enabled_.Init(prefs::kPerformanceTracingEnabled, performance_tracing_enabled_.Init(prefs::kPerformanceTracingEnabled,
prefs, callback); prefs, callback);
tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); tap_to_click_enabled_.Init(ash::prefs::kTapToClickEnabled, prefs, callback);
three_finger_click_enabled_.Init(prefs::kEnableTouchpadThreeFingerClick, three_finger_click_enabled_.Init(prefs::kEnableTouchpadThreeFingerClick,
prefs, callback); prefs, callback);
unified_desktop_enabled_by_default_.Init( unified_desktop_enabled_by_default_.Init(
...@@ -626,20 +627,16 @@ void Preferences::ApplyPreferences(ApplyReason reason, ...@@ -626,20 +627,16 @@ void Preferences::ApplyPreferences(ApplyReason reason,
tracing_manager_.reset(); tracing_manager_.reset();
SystemTrayClient::Get()->SetPerformanceTracingIconVisible(enabled); SystemTrayClient::Get()->SetPerformanceTracingIconVisible(enabled);
} }
if (reason != REASON_PREF_CHANGED || pref_name == prefs::kTapToClickEnabled) { if (reason != REASON_PREF_CHANGED ||
pref_name == ash::prefs::kTapToClickEnabled) {
const bool enabled = tap_to_click_enabled_.GetValue(); const bool enabled = tap_to_click_enabled_.GetValue();
if (user_is_active)
touchpad_settings.SetTapToClick(enabled);
if (reason == REASON_PREF_CHANGED)
UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Changed", enabled);
else if (reason == REASON_INITIALIZATION)
UMA_HISTOGRAM_BOOLEAN("Touchpad.TapToClick.Started", enabled);
// Save owner preference in local state to use on login screen. // Save owner preference in local state to use on login screen.
// TODO(jamescook): move to ash once user session info could distinguish
// between owner and non-owner (http://crbug.com/857103).
if (user_is_owner) { if (user_is_owner) {
PrefService* prefs = g_browser_process->local_state(); PrefService* prefs = g_browser_process->local_state();
if (prefs->GetBoolean(prefs::kOwnerTapToClickEnabled) != enabled) if (prefs->GetBoolean(ash::prefs::kOwnerTapToClickEnabled) != enabled)
prefs->SetBoolean(prefs::kOwnerTapToClickEnabled, enabled); prefs->SetBoolean(ash::prefs::kOwnerTapToClickEnabled, enabled);
} }
} }
if (reason != REASON_PREF_CHANGED || if (reason != REASON_PREF_CHANGED ||
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <stddef.h> #include <stddef.h>
#include <sys/types.h> #include <sys/types.h>
#include "ash/public/cpp/ash_pref_names.h"
#include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/ash_switches.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/macros.h" #include "base/macros.h"
...@@ -64,7 +65,6 @@ class PreferencesTest : public LoginManagerTest { ...@@ -64,7 +65,6 @@ class PreferencesTest : public LoginManagerTest {
// |variant| value. For opposite |variant| values all preferences receive // |variant| value. For opposite |variant| values all preferences receive
// different values. // different values.
void SetPrefs(PrefService* prefs, bool variant) { void SetPrefs(PrefService* prefs, bool variant) {
prefs->SetBoolean(prefs::kTapToClickEnabled, variant);
prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, !variant); prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, !variant);
prefs->SetBoolean(prefs::kMouseReverseScroll, variant); prefs->SetBoolean(prefs::kMouseReverseScroll, variant);
prefs->SetBoolean(prefs::kEnableTouchpadThreeFingerClick, !variant); prefs->SetBoolean(prefs::kEnableTouchpadThreeFingerClick, !variant);
...@@ -80,8 +80,6 @@ class PreferencesTest : public LoginManagerTest { ...@@ -80,8 +80,6 @@ class PreferencesTest : public LoginManagerTest {
} }
void CheckSettingsCorrespondToPrefs(PrefService* prefs) { void CheckSettingsCorrespondToPrefs(PrefService* prefs) {
EXPECT_EQ(prefs->GetBoolean(prefs::kTapToClickEnabled),
input_settings_->current_touchpad_settings().GetTapToClick());
EXPECT_EQ(prefs->GetBoolean(prefs::kPrimaryMouseButtonRight), EXPECT_EQ(prefs->GetBoolean(prefs::kPrimaryMouseButtonRight),
input_settings_->current_mouse_settings() input_settings_->current_mouse_settings()
.GetPrimaryButtonRight()); .GetPrimaryButtonRight());
...@@ -110,8 +108,8 @@ class PreferencesTest : public LoginManagerTest { ...@@ -110,8 +108,8 @@ class PreferencesTest : public LoginManagerTest {
void CheckLocalStateCorrespondsToPrefs(PrefService* prefs) { void CheckLocalStateCorrespondsToPrefs(PrefService* prefs) {
PrefService* local_state = g_browser_process->local_state(); PrefService* local_state = g_browser_process->local_state();
EXPECT_EQ(local_state->GetBoolean(prefs::kOwnerTapToClickEnabled), EXPECT_EQ(local_state->GetBoolean(ash::prefs::kOwnerTapToClickEnabled),
prefs->GetBoolean(prefs::kTapToClickEnabled)); prefs->GetBoolean(ash::prefs::kTapToClickEnabled));
EXPECT_EQ(local_state->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight), EXPECT_EQ(local_state->GetBoolean(prefs::kOwnerPrimaryMouseButtonRight),
prefs->GetBoolean(prefs::kPrimaryMouseButtonRight)); prefs->GetBoolean(prefs::kPrimaryMouseButtonRight));
} }
...@@ -203,11 +201,11 @@ IN_PROC_BROWSER_TEST_F(PreferencesTestForceWebUiLogin, MultiProfiles) { ...@@ -203,11 +201,11 @@ IN_PROC_BROWSER_TEST_F(PreferencesTestForceWebUiLogin, MultiProfiles) {
// state prefs and vice versa. // state prefs and vice versa.
EXPECT_EQ(user_manager->GetOwnerAccountId(), test_users_[0]); EXPECT_EQ(user_manager->GetOwnerAccountId(), test_users_[0]);
CheckLocalStateCorrespondsToPrefs(prefs1); CheckLocalStateCorrespondsToPrefs(prefs1);
prefs2->SetBoolean(prefs::kTapToClickEnabled, prefs2->SetBoolean(ash::prefs::kTapToClickEnabled,
!prefs1->GetBoolean(prefs::kTapToClickEnabled)); !prefs1->GetBoolean(ash::prefs::kTapToClickEnabled));
CheckLocalStateCorrespondsToPrefs(prefs1); CheckLocalStateCorrespondsToPrefs(prefs1);
prefs1->SetBoolean(prefs::kTapToClickEnabled, prefs1->SetBoolean(ash::prefs::kTapToClickEnabled,
!prefs1->GetBoolean(prefs::kTapToClickEnabled)); !prefs1->GetBoolean(ash::prefs::kTapToClickEnabled));
CheckLocalStateCorrespondsToPrefs(prefs1); CheckLocalStateCorrespondsToPrefs(prefs1);
// Switch user back. // Switch user back.
......
...@@ -424,7 +424,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetWhitelistedKeys() { ...@@ -424,7 +424,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetWhitelistedKeys() {
settings_api::PrefType::PREF_TYPE_LIST; settings_api::PrefType::PREF_TYPE_LIST;
// Device settings. // Device settings.
(*s_whitelist)[::prefs::kTapToClickEnabled] = (*s_whitelist)[ash::prefs::kTapToClickEnabled] =
settings_api::PrefType::PREF_TYPE_BOOLEAN; settings_api::PrefType::PREF_TYPE_BOOLEAN;
(*s_whitelist)[::prefs::kNaturalScroll] = (*s_whitelist)[::prefs::kNaturalScroll] =
settings_api::PrefType::PREF_TYPE_BOOLEAN; settings_api::PrefType::PREF_TYPE_BOOLEAN;
......
...@@ -478,9 +478,6 @@ const char kDefaultAppsInstallState[] = "default_apps_install_state"; ...@@ -478,9 +478,6 @@ const char kDefaultAppsInstallState[] = "default_apps_install_state";
const char kHideWebStoreIcon[] = "hide_web_store_icon"; const char kHideWebStoreIcon[] = "hide_web_store_icon";
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
// A boolean pref set to true if touchpad tap-to-click is enabled.
const char kTapToClickEnabled[] = "settings.touchpad.enable_tap_to_click";
// A boolean pref set to true if touchpad three-finger-click is enabled. // A boolean pref set to true if touchpad three-finger-click is enabled.
const char kEnableTouchpadThreeFingerClick[] = const char kEnableTouchpadThreeFingerClick[] =
"settings.touchpad.enable_three_finger_click"; "settings.touchpad.enable_three_finger_click";
...@@ -1778,9 +1775,6 @@ const char kExternalStorageReadOnly[] = "hardware.external_storage_read_only"; ...@@ -1778,9 +1775,6 @@ const char kExternalStorageReadOnly[] = "hardware.external_storage_read_only";
// Copy of owner swap mouse buttons option to use on login screen. // Copy of owner swap mouse buttons option to use on login screen.
const char kOwnerPrimaryMouseButtonRight[] = "owner.mouse.primary_right"; const char kOwnerPrimaryMouseButtonRight[] = "owner.mouse.primary_right";
// Copy of owner tap-to-click option to use on login screen.
const char kOwnerTapToClickEnabled[] = "owner.touchpad.enable_tap_to_click";
// The length of device uptime after which an automatic reboot is scheduled, // The length of device uptime after which an automatic reboot is scheduled,
// expressed in seconds. // expressed in seconds.
const char kUptimeLimit[] = "automatic_reboot.uptime_limit"; const char kUptimeLimit[] = "automatic_reboot.uptime_limit";
......
...@@ -191,7 +191,6 @@ extern const char kNetworkPredictionOptions[]; ...@@ -191,7 +191,6 @@ extern const char kNetworkPredictionOptions[];
extern const char kDefaultAppsInstallState[]; extern const char kDefaultAppsInstallState[];
extern const char kHideWebStoreIcon[]; extern const char kHideWebStoreIcon[];
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
extern const char kTapToClickEnabled[];
extern const char kEnableTouchpadThreeFingerClick[]; extern const char kEnableTouchpadThreeFingerClick[];
extern const char kNaturalScroll[]; extern const char kNaturalScroll[];
extern const char kPrimaryMouseButtonRight[]; extern const char kPrimaryMouseButtonRight[];
...@@ -610,7 +609,6 @@ extern const char kUserActivityTimes[]; ...@@ -610,7 +609,6 @@ extern const char kUserActivityTimes[];
extern const char kExternalStorageDisabled[]; extern const char kExternalStorageDisabled[];
extern const char kExternalStorageReadOnly[]; extern const char kExternalStorageReadOnly[];
extern const char kOwnerPrimaryMouseButtonRight[]; extern const char kOwnerPrimaryMouseButtonRight[];
extern const char kOwnerTapToClickEnabled[];
extern const char kUptimeLimit[]; extern const char kUptimeLimit[];
extern const char kRebootAfterUpdate[]; extern const char kRebootAfterUpdate[];
extern const char kDeviceRobotAnyApiRefreshToken[]; extern const char kDeviceRobotAnyApiRefreshToken[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment