Index: webkit/glue/fling_animator_impl_android.cc |
diff --git a/webkit/glue/fling_animator_impl_android.cc b/webkit/glue/fling_animator_impl_android.cc |
index 8304c5aefc72ff58e679fa107240da36f139d442..d663cb73d57f9d1cd45487cf3e9f2b38c6772e3c 100644 |
--- a/webkit/glue/fling_animator_impl_android.cc |
+++ b/webkit/glue/fling_animator_impl_android.cc |
@@ -25,7 +25,7 @@ FlingAnimatorImpl::FlingAnimatorImpl() |
DCHECK(tmp.obj()); |
java_scroller_.Reset(tmp); |
- fling_method_id_ = GetMethodID(env, cls, "fling", "(IIIIIIIIII)V"); |
+ fling_method_id_ = GetMethodID(env, cls, "fling", "(IIIIIIII)V"); |
abort_method_id_ = GetMethodID(env, cls, "abortAnimation", "()V"); |
compute_method_id_ = GetMethodID(env, cls, "computeScrollOffset", "()Z"); |
getX_method_id_ = GetMethodID(env, cls, "getCurrX", "()I"); |
@@ -37,8 +37,12 @@ FlingAnimatorImpl::~FlingAnimatorImpl() |
} |
void FlingAnimatorImpl::startFling(const WebKit::WebFloatPoint& velocity, |
- const WebKit::WebRect& range) |
+ const WebKit::WebRect& /* range */) |
{ |
+ // Ignore "range" as it's always empty -- see http://webkit.org/b/96403 |
+ // Instead, use the largest possible bounds for minX/maxX/minY/maxY. The |
+ // compositor will ignore any attempt to scroll beyond the end of the page. |
+ |
DCHECK(velocity.x || velocity.y); |
if (is_active_) |
cancelFling(); |
@@ -46,11 +50,11 @@ void FlingAnimatorImpl::startFling(const WebKit::WebFloatPoint& velocity, |
is_active_ = true; |
JNIEnv* env = AttachCurrentThread(); |
+ |
env->CallVoidMethod(java_scroller_.obj(), fling_method_id_, 0, 0, |
static_cast<int>(velocity.x), |
static_cast<int>(velocity.y), |
- range.x, range.x + range.width, |
- range.y, range.y + range.height, 0, 0); |
+ INT_MIN, INT_MAX, INT_MIN, INT_MAX); |
CheckException(env); |
} |