Index: chrome/browser/ui/gesture_prefs_observer_factory_aura.cc |
diff --git a/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc b/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc |
index 82895ff7179b50ec8a04b8b404ceaf6159b9bc6e..fd8f70aeb83874c4d36a625e94b02cffa0d64a79 100644 |
--- a/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc |
+++ b/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc |
@@ -151,6 +151,29 @@ GesturePrefsObserver::GesturePrefsObserver(PrefService* prefs) |
// Clear for migration. |
prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment); |
+ // Do a one-time wipe of all gesture preferences. |
Peter Kasting
2013/08/09 19:03:54
Nit: Say why, as well as when this will be removed
mohsen
2013/08/09 20:12:34
Done.
|
+ if (!prefs->GetBoolean(prefs::kGestureConfigIsTrustworthy)) { |
+ for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) |
+ prefs->ClearPref(kPrefsToObserve[i]); |
+ |
+ const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs(); |
+ for (size_t i = 0; i < overscroll_prefs.size(); ++i) |
+ prefs->ClearPref(overscroll_prefs[i].pref_name); |
+ |
+ for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); ++i) |
+ prefs->ClearPref(kFlingTouchpadPrefs[i]); |
+ |
+ for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); ++i) |
+ prefs->ClearPref(kFlingTouchscreenPrefs[i]); |
+ |
+#if defined(USE_ASH) |
+ for (size_t i = 0; i < arraysize(kImmersiveModePrefs); ++i) |
+ prefs->ClearPref(kImmersiveModePrefs[i]); |
+#endif // USE_ASH |
+ |
+ prefs->SetBoolean(prefs::kGestureConfigIsTrustworthy, true); |
+ } |
+ |
registrar_.Init(prefs); |
registrar_.RemoveAll(); |
base::Closure callback = base::Bind(&GesturePrefsObserver::Update, |
@@ -481,6 +504,12 @@ void GesturePrefsObserverFactoryAura::RegisterProfilePrefs( |
RegisterOverscrollPrefs(registry); |
RegisterFlingCurveParameters(registry); |
RegisterImmersiveModePrefs(registry); |
+ |
+ // Register pref for a one-time wipe of all gesture preferences. |
+ registry->RegisterBooleanPref( |
+ prefs::kGestureConfigIsTrustworthy, |
+ false, |
+ user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
} |
bool |