OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/ui/gesture_prefs_observer_factory_aura.h" | 5 #include "chrome/browser/ui/gesture_prefs_observer_factory_aura.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 prefs::kFlingCurveTouchscreenAlpha, | 144 prefs::kFlingCurveTouchscreenAlpha, |
145 prefs::kFlingCurveTouchscreenBeta, | 145 prefs::kFlingCurveTouchscreenBeta, |
146 prefs::kFlingCurveTouchscreenGamma, | 146 prefs::kFlingCurveTouchscreenGamma, |
147 }; | 147 }; |
148 | 148 |
149 GesturePrefsObserver::GesturePrefsObserver(PrefService* prefs) | 149 GesturePrefsObserver::GesturePrefsObserver(PrefService* prefs) |
150 : prefs_(prefs) { | 150 : prefs_(prefs) { |
151 // Clear for migration. | 151 // Clear for migration. |
152 prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment); | 152 prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment); |
153 | 153 |
| 154 // TODO(mohsen): Remove following code in M32. By then, gesture prefs will |
| 155 // have been cleared for majority of the users: crbug.com/269292. |
| 156 // Do a one-time wipe of all gesture preferences. |
| 157 if (!prefs->GetBoolean(prefs::kGestureConfigIsTrustworthy)) { |
| 158 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) |
| 159 prefs->ClearPref(kPrefsToObserve[i]); |
| 160 |
| 161 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs(); |
| 162 for (size_t i = 0; i < overscroll_prefs.size(); ++i) |
| 163 prefs->ClearPref(overscroll_prefs[i].pref_name); |
| 164 |
| 165 for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); ++i) |
| 166 prefs->ClearPref(kFlingTouchpadPrefs[i]); |
| 167 |
| 168 for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); ++i) |
| 169 prefs->ClearPref(kFlingTouchscreenPrefs[i]); |
| 170 |
| 171 #if defined(USE_ASH) |
| 172 for (size_t i = 0; i < arraysize(kImmersiveModePrefs); ++i) |
| 173 prefs->ClearPref(kImmersiveModePrefs[i]); |
| 174 #endif // USE_ASH |
| 175 |
| 176 prefs->SetBoolean(prefs::kGestureConfigIsTrustworthy, true); |
| 177 } |
| 178 |
154 registrar_.Init(prefs); | 179 registrar_.Init(prefs); |
155 registrar_.RemoveAll(); | 180 registrar_.RemoveAll(); |
156 base::Closure callback = base::Bind(&GesturePrefsObserver::Update, | 181 base::Closure callback = base::Bind(&GesturePrefsObserver::Update, |
157 base::Unretained(this)); | 182 base::Unretained(this)); |
158 | 183 |
159 base::Closure notify_callback = base::Bind(&GesturePrefsObserver::Notify, | 184 base::Closure notify_callback = base::Bind(&GesturePrefsObserver::Notify, |
160 base::Unretained(this)); | 185 base::Unretained(this)); |
161 | 186 |
162 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) | 187 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) |
163 registrar_.Add(kPrefsToObserve[i], callback); | 188 registrar_.Add(kPrefsToObserve[i], callback); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 | 499 |
475 // Register for migration. | 500 // Register for migration. |
476 registry->RegisterDoublePref( | 501 registry->RegisterDoublePref( |
477 kTouchScreenFlingAccelerationAdjustment, | 502 kTouchScreenFlingAccelerationAdjustment, |
478 0.0, | 503 0.0, |
479 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 504 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
480 | 505 |
481 RegisterOverscrollPrefs(registry); | 506 RegisterOverscrollPrefs(registry); |
482 RegisterFlingCurveParameters(registry); | 507 RegisterFlingCurveParameters(registry); |
483 RegisterImmersiveModePrefs(registry); | 508 RegisterImmersiveModePrefs(registry); |
| 509 |
| 510 // Register pref for a one-time wipe of all gesture preferences. |
| 511 registry->RegisterBooleanPref( |
| 512 prefs::kGestureConfigIsTrustworthy, |
| 513 false, |
| 514 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
484 } | 515 } |
485 | 516 |
486 bool | 517 bool |
487 GesturePrefsObserverFactoryAura::ServiceIsCreatedWithBrowserContext() const { | 518 GesturePrefsObserverFactoryAura::ServiceIsCreatedWithBrowserContext() const { |
488 // Create the observer as soon as the profile is created. | 519 // Create the observer as soon as the profile is created. |
489 return true; | 520 return true; |
490 } | 521 } |
491 | 522 |
492 content::BrowserContext* | 523 content::BrowserContext* |
493 GesturePrefsObserverFactoryAura::GetBrowserContextToUse( | 524 GesturePrefsObserverFactoryAura::GetBrowserContextToUse( |
494 content::BrowserContext* context) const { | 525 content::BrowserContext* context) const { |
495 // Use same gesture preferences on incognito windows. | 526 // Use same gesture preferences on incognito windows. |
496 return chrome::GetBrowserContextRedirectedInIncognito(context); | 527 return chrome::GetBrowserContextRedirectedInIncognito(context); |
497 } | 528 } |
498 | 529 |
499 bool GesturePrefsObserverFactoryAura::ServiceIsNULLWhileTesting() const { | 530 bool GesturePrefsObserverFactoryAura::ServiceIsNULLWhileTesting() const { |
500 // Some tests replace the PrefService of the TestingProfile after the | 531 // Some tests replace the PrefService of the TestingProfile after the |
501 // GesturePrefsObserver has been created, which makes Shutdown() | 532 // GesturePrefsObserver has been created, which makes Shutdown() |
502 // remove the registrar from a non-existent PrefService. | 533 // remove the registrar from a non-existent PrefService. |
503 return true; | 534 return true; |
504 } | 535 } |
OLD | NEW |