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

Side by Side Diff: chrome/browser/ui/gesture_prefs_observer_factory_aura.cc

Issue 45623005: [NOT FOR REVIEW] Patch demonstrating the changes required for browser side fling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: patch Created 7 years, 1 month 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
OLDNEW
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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 prefs::kMinPinchUpdateDistanceInPixels, 115 prefs::kMinPinchUpdateDistanceInPixels,
116 prefs::kMinRailBreakVelocity, 116 prefs::kMinRailBreakVelocity,
117 prefs::kMinScrollDeltaSquared, 117 prefs::kMinScrollDeltaSquared,
118 prefs::kMinScrollSuccessiveVelocityEvents, 118 prefs::kMinScrollSuccessiveVelocityEvents,
119 prefs::kMinSwipeSpeed, 119 prefs::kMinSwipeSpeed,
120 prefs::kMinTouchDownDurationInSecondsForClick, 120 prefs::kMinTouchDownDurationInSecondsForClick,
121 prefs::kPointsBufferedForVelocity, 121 prefs::kPointsBufferedForVelocity,
122 prefs::kRailBreakProportion, 122 prefs::kRailBreakProportion,
123 prefs::kRailStartProportion, 123 prefs::kRailStartProportion,
124 prefs::kSemiLongPressTimeInSeconds, 124 prefs::kSemiLongPressTimeInSeconds,
125 };
126
127 const char* kFlingTouchpadPrefs[] = {
128 prefs::kFlingCurveTouchpadAlpha, 125 prefs::kFlingCurveTouchpadAlpha,
129 prefs::kFlingCurveTouchpadBeta, 126 prefs::kFlingCurveTouchpadBeta,
130 prefs::kFlingCurveTouchpadGamma 127 prefs::kFlingCurveTouchpadGamma,
131 };
132
133 const char* kFlingTouchscreenPrefs[] = {
134 prefs::kFlingCurveTouchscreenAlpha, 128 prefs::kFlingCurveTouchscreenAlpha,
135 prefs::kFlingCurveTouchscreenBeta, 129 prefs::kFlingCurveTouchscreenBeta,
136 prefs::kFlingCurveTouchscreenGamma, 130 prefs::kFlingCurveTouchscreenGamma
137 }; 131 };
138 132
139 GesturePrefsObserver::GesturePrefsObserver(PrefService* prefs) 133 GesturePrefsObserver::GesturePrefsObserver(PrefService* prefs)
140 : prefs_(prefs) { 134 : prefs_(prefs) {
141 // Clear for migration. 135 // Clear for migration.
142 prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment); 136 prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment);
143 137
144 // TODO(mohsen): Remove following code in M32. By then, gesture prefs will 138 // TODO(mohsen): Remove following code in M32. By then, gesture prefs will
145 // have been cleared for majority of the users: crbug.com/269292. 139 // have been cleared for majority of the users: crbug.com/269292.
146 // Do a one-time wipe of all gesture preferences. 140 // Do a one-time wipe of all gesture preferences.
147 if (!prefs->GetBoolean(prefs::kGestureConfigIsTrustworthy)) { 141 if (!prefs->GetBoolean(prefs::kGestureConfigIsTrustworthy)) {
148 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) 142 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i)
149 prefs->ClearPref(kPrefsToObserve[i]); 143 prefs->ClearPref(kPrefsToObserve[i]);
150 144
151 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs(); 145 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs();
152 for (size_t i = 0; i < overscroll_prefs.size(); ++i) 146 for (size_t i = 0; i < overscroll_prefs.size(); ++i)
153 prefs->ClearPref(overscroll_prefs[i].pref_name); 147 prefs->ClearPref(overscroll_prefs[i].pref_name);
154 148
155 for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); ++i)
156 prefs->ClearPref(kFlingTouchpadPrefs[i]);
157
158 for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); ++i)
159 prefs->ClearPref(kFlingTouchscreenPrefs[i]);
160
161 prefs->SetBoolean(prefs::kGestureConfigIsTrustworthy, true); 149 prefs->SetBoolean(prefs::kGestureConfigIsTrustworthy, true);
162 } 150 }
163 151
164 registrar_.Init(prefs); 152 registrar_.Init(prefs);
165 registrar_.RemoveAll(); 153 registrar_.RemoveAll();
166 base::Closure callback = base::Bind(&GesturePrefsObserver::Update, 154 base::Closure callback = base::Bind(&GesturePrefsObserver::Update,
167 base::Unretained(this)); 155 base::Unretained(this));
168 156
169 base::Closure notify_callback = base::Bind(&GesturePrefsObserver::Notify, 157 base::Closure notify_callback = base::Bind(&GesturePrefsObserver::Notify,
170 base::Unretained(this)); 158 base::Unretained(this));
171 159
172 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i) 160 for (size_t i = 0; i < arraysize(kPrefsToObserve); ++i)
173 registrar_.Add(kPrefsToObserve[i], callback); 161 registrar_.Add(kPrefsToObserve[i], callback);
174 162
175 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs(); 163 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs();
176 for (size_t i = 0; i < overscroll_prefs.size(); ++i) 164 for (size_t i = 0; i < overscroll_prefs.size(); ++i)
177 registrar_.Add(overscroll_prefs[i].pref_name, callback); 165 registrar_.Add(overscroll_prefs[i].pref_name, callback);
178 166
179 for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); ++i)
180 registrar_.Add(kFlingTouchpadPrefs[i], notify_callback);
181 for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); ++i)
182 registrar_.Add(kFlingTouchscreenPrefs[i], notify_callback);
183
184 Update(); 167 Update();
185 } 168 }
186 169
187 GesturePrefsObserver::~GesturePrefsObserver() {} 170 GesturePrefsObserver::~GesturePrefsObserver() {}
188 171
189 void GesturePrefsObserver::Shutdown() { 172 void GesturePrefsObserver::Shutdown() {
190 registrar_.RemoveAll(); 173 registrar_.RemoveAll();
191 } 174 }
192 175
193 void GesturePrefsObserver::Update() { 176 void GesturePrefsObserver::Update() {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 prefs_->GetDouble( 248 prefs_->GetDouble(
266 prefs::kRailBreakProportion)); 249 prefs::kRailBreakProportion));
267 GestureConfiguration::set_rail_start_proportion( 250 GestureConfiguration::set_rail_start_proportion(
268 prefs_->GetDouble( 251 prefs_->GetDouble(
269 prefs::kRailStartProportion)); 252 prefs::kRailStartProportion));
270 GestureConfiguration::set_scroll_prediction_seconds( 253 GestureConfiguration::set_scroll_prediction_seconds(
271 prefs_->GetDouble(prefs::kScrollPredictionSeconds)); 254 prefs_->GetDouble(prefs::kScrollPredictionSeconds));
272 GestureConfiguration::set_show_press_delay_in_ms( 255 GestureConfiguration::set_show_press_delay_in_ms(
273 prefs_->GetInteger(prefs::kShowPressDelayInMS)); 256 prefs_->GetInteger(prefs::kShowPressDelayInMS));
274 257
258 // Fling curve: Touchpad
259 GestureConfiguration::set_touchpad_fling_curve_alpha(
260 prefs_->GetDouble(prefs::kFlingCurveTouchpadAlpha));
261 GestureConfiguration::set_touchpad_fling_curve_beta(
262 prefs_->GetDouble(prefs::kFlingCurveTouchpadBeta));
263 GestureConfiguration::set_touchpad_fling_curve_gamma(
264 prefs_->GetDouble(prefs::kFlingCurveTouchpadGamma));
265
266 // Fling curve: Touchscreen
267 GestureConfiguration::set_touchscreen_fling_curve_alpha(
268 prefs_->GetDouble(prefs::kFlingCurveTouchscreenAlpha));
269 GestureConfiguration::set_touchscreen_fling_curve_beta(
270 prefs_->GetDouble(prefs::kFlingCurveTouchscreenBeta));
271 GestureConfiguration::set_touchscreen_fling_curve_gamma(
272 prefs_->GetDouble(prefs::kFlingCurveTouchscreenGamma));
273
275 UpdateOverscrollPrefs(); 274 UpdateOverscrollPrefs();
276 } 275 }
277 276
278 void GesturePrefsObserver::UpdateOverscrollPrefs() { 277 void GesturePrefsObserver::UpdateOverscrollPrefs() {
279 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs(); 278 const std::vector<OverscrollPref>& overscroll_prefs = GetOverscrollPrefs();
280 for (size_t i = 0; i < overscroll_prefs.size(); ++i) { 279 for (size_t i = 0; i < overscroll_prefs.size(); ++i) {
281 content::SetOverscrollConfig(overscroll_prefs[i].config, 280 content::SetOverscrollConfig(overscroll_prefs[i].config,
282 static_cast<float>(prefs_->GetDouble(overscroll_prefs[i].pref_name))); 281 static_cast<float>(prefs_->GetDouble(overscroll_prefs[i].pref_name)));
283 } 282 }
284 } 283 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 overscroll_prefs[i].pref_name, 321 overscroll_prefs[i].pref_name,
323 content::GetOverscrollConfig(overscroll_prefs[i].config), 322 content::GetOverscrollConfig(overscroll_prefs[i].config),
324 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 323 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
325 } 324 }
326 } 325 }
327 326
328 void GesturePrefsObserverFactoryAura::RegisterFlingCurveParameters( 327 void GesturePrefsObserverFactoryAura::RegisterFlingCurveParameters(
329 user_prefs::PrefRegistrySyncable* registry) { 328 user_prefs::PrefRegistrySyncable* registry) {
330 content::RendererPreferences def_prefs; 329 content::RendererPreferences def_prefs;
331 330
332 for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); i++) 331 // Touchpad
333 registry->RegisterDoublePref( 332 registry->RegisterDoublePref(
334 kFlingTouchpadPrefs[i], 333 prefs::kFlingCurveTouchpadAlpha,
335 def_prefs.touchpad_fling_profile[i], 334 GestureConfiguration::touchpad_fling_curve_alpha(),
336 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 335 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
336 registry->RegisterDoublePref(
337 prefs::kFlingCurveTouchpadBeta,
338 GestureConfiguration::touchpad_fling_curve_beta(),
339 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
340 registry->RegisterDoublePref(
341 prefs::kFlingCurveTouchpadGamma,
342 GestureConfiguration::touchpad_fling_curve_gamma(),
343 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
337 344
338 for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); i++) 345 // Touchscreen
339 registry->RegisterDoublePref( 346 registry->RegisterDoublePref(
340 kFlingTouchscreenPrefs[i], 347 prefs::kFlingCurveTouchscreenAlpha,
341 def_prefs.touchscreen_fling_profile[i], 348 GestureConfiguration::touchscreen_fling_curve_alpha(),
342 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 349 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
350 registry->RegisterDoublePref(
351 prefs::kFlingCurveTouchscreenBeta,
352 GestureConfiguration::touchscreen_fling_curve_beta(),
353 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
354 registry->RegisterDoublePref(
355 prefs::kFlingCurveTouchscreenGamma,
356 GestureConfiguration::touchscreen_fling_curve_gamma(),
357 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
343 } 358 }
344 359
345 void GesturePrefsObserverFactoryAura::RegisterProfilePrefs( 360 void GesturePrefsObserverFactoryAura::RegisterProfilePrefs(
346 user_prefs::PrefRegistrySyncable* registry) { 361 user_prefs::PrefRegistrySyncable* registry) {
347 registry->RegisterDoublePref( 362 registry->RegisterDoublePref(
348 prefs::kFlingAccelerationCurveCoefficient0, 363 prefs::kFlingAccelerationCurveCoefficient0,
349 GestureConfiguration::fling_acceleration_curve_coefficients(0), 364 GestureConfiguration::fling_acceleration_curve_coefficients(0),
350 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 365 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
351 registry->RegisterDoublePref( 366 registry->RegisterDoublePref(
352 prefs::kFlingAccelerationCurveCoefficient1, 367 prefs::kFlingAccelerationCurveCoefficient1,
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 // Use same gesture preferences on incognito windows. 508 // Use same gesture preferences on incognito windows.
494 return chrome::GetBrowserContextRedirectedInIncognito(context); 509 return chrome::GetBrowserContextRedirectedInIncognito(context);
495 } 510 }
496 511
497 bool GesturePrefsObserverFactoryAura::ServiceIsNULLWhileTesting() const { 512 bool GesturePrefsObserverFactoryAura::ServiceIsNULLWhileTesting() const {
498 // Some tests replace the PrefService of the TestingProfile after the 513 // Some tests replace the PrefService of the TestingProfile after the
499 // GesturePrefsObserver has been created, which makes Shutdown() 514 // GesturePrefsObserver has been created, which makes Shutdown()
500 // remove the registrar from a non-existent PrefService. 515 // remove the registrar from a non-existent PrefService.
501 return true; 516 return true;
502 } 517 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698