[chromium] Transfer wheel fling via WebCompositorInputHandlerClient
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2012 06:08:16 +0000 (06:08 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2012 06:08:16 +0000 (06:08 +0000)
commitcb2036ca85e125288252faecb5eee9cc5cb1f420
treedf6f11acf5968bc420213c96f829ba2b5a6bb0d2
parentcffe30f7fae81c10a8be41590ad99eb2236bafcd
[chromium] Transfer wheel fling via WebCompositorInputHandlerClient
https://bugs.webkit.org/show_bug.cgi?id=81740

Patch by James Robinson <jamesr@chromium.org> on 2012-03-27
Reviewed by Adrienne Walker.

Source/WebCore:

Adds the ability to construct an in-progress PlatformGestureAnimation.

* platform/ActivePlatformGestureAnimation.cpp:
(WebCore::ActivePlatformGestureAnimation::create):
(WebCore):
(WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
* platform/ActivePlatformGestureAnimation.h:
(ActivePlatformGestureAnimation):
* platform/TouchpadFlingPlatformGestureCurve.cpp:
(WebCore::TouchpadFlingPlatformGestureCurve::create):
(WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
* platform/TouchpadFlingPlatformGestureCurve.h:
(TouchpadFlingPlatformGestureCurve):

Source/WebKit/chromium:

Adds a path for transfering an active wheel fling animation out to the embedder from the compositor and back in
to a WebViewImpl via the embedder. This is used when we start a wheel fling animation on the compositor thread
but then hit a condition that we can't handle from the compositor, such as registered wheel event listeners or a
scrollable area we can't handle.

New tests added to WebCompositorInputHandlerTest for the transfering logic.

* public/WebActiveWheelFlingParameters.h: Copied from Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h.
(WebKit):
(WebActiveWheelFlingParameters):
(WebKit::WebActiveWheelFlingParameters::WebActiveWheelFlingParameters):
* public/WebCompositorInputHandlerClient.h:
(WebKit):
(WebCompositorInputHandlerClient):
(WebKit::WebCompositorInputHandlerClient::transferActiveWheelFlingAnimation):
* public/WebView.h:
(WebKit):
(WebView):
* src/WebCompositorInputHandlerImpl.cpp:
(WebKit::WebCompositorInputHandlerImpl::handleGestureFling):
(WebKit::WebCompositorInputHandlerImpl::animate):
(WebKit::WebCompositorInputHandlerImpl::cancelCurrentFling):
(WebKit::WebCompositorInputHandlerImpl::scrollBy):
* src/WebCompositorInputHandlerImpl.h:
(WebCore):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::transferActiveWheelFlingAnimation):
(WebKit):
* src/WebViewImpl.h:
(WebViewImpl):
* tests/WebCompositorInputHandlerImplTest.cpp:
(WebKit::MockWebCompositorInputHandlerClient::MockWebCompositorInputHandlerClient):
(MockWebCompositorInputHandlerClient):
(WebKit::TEST):
(WebKit::WebCompositorInputHandlerImplTest::WebCompositorInputHandlerImplTest):
(WebKit::WebCompositorInputHandlerImplTest::~WebCompositorInputHandlerImplTest):
(WebCompositorInputHandlerImplTest):
(WebKit::TEST_F):
(WebKit):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@112364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed:
Source/WebCore/ChangeLog
Source/WebCore/platform/ActivePlatformGestureAnimation.cpp
Source/WebCore/platform/ActivePlatformGestureAnimation.h
Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp
Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h [new file with mode: 0644]
Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h
Source/WebKit/chromium/public/WebView.h
Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp
Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp