Variations Trial: Reserve IDs for ExtensionInstallPrompt trial.
[chromium-blink-merge.git] / webkit / child / fling_curve_configuration.cc
blob070513147c517c1bb6d5eae483afd31ac9faf1ab
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
3 // found in the LICENSE file.
5 #include "webkit/child/fling_curve_configuration.h"
7 #include "base/logging.h"
8 #include "third_party/WebKit/public/platform/WebGestureCurve.h"
9 #include "webkit/child/touch_fling_gesture_curve.h"
11 namespace webkit_glue {
13 FlingCurveConfiguration::FlingCurveConfiguration() { }
15 FlingCurveConfiguration::~FlingCurveConfiguration() { }
17 void FlingCurveConfiguration::SetCurveParameters(
18 const std::vector<float>& new_touchpad,
19 const std::vector<float>& new_touchscreen) {
20 DCHECK(new_touchpad.size() >= 3);
21 DCHECK(new_touchscreen.size() >= 3);
22 base::AutoLock scoped_lock(lock_);
23 touchpad_coefs_ = new_touchpad;
24 touchscreen_coefs_ = new_touchscreen;
27 blink::WebGestureCurve* FlingCurveConfiguration::CreateCore(
28 const std::vector<float>& coefs,
29 const blink::WebFloatPoint& velocity,
30 const blink::WebSize& cumulativeScroll) {
31 float p0, p1, p2;
34 base::AutoLock scoped_lock(lock_);
35 p0 = coefs[0];
36 p1 = coefs[1];
37 p2 = coefs[2];
40 return TouchFlingGestureCurve::Create(velocity, p0, p1, p2, cumulativeScroll);
43 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchPad(
44 const blink::WebFloatPoint& velocity,
45 const blink::WebSize& cumulativeScroll) {
46 return CreateCore(touchpad_coefs_, velocity, cumulativeScroll);
49 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchScreen(
50 const blink::WebFloatPoint& velocity,
51 const blink::WebSize& cumulativeScroll) {
52 return CreateCore(touchscreen_coefs_, velocity, cumulativeScroll);
55 } // namespace webkit_glue