| Index: content/browser/renderer_host/input/touch_action_filter_unittest.cc
|
| diff --git a/content/browser/renderer_host/input/touch_action_filter_unittest.cc b/content/browser/renderer_host/input/touch_action_filter_unittest.cc
|
| index 237ba50d470cf02476bf5cf31bade1cdddc56d06..0b4b4234418fed6c5b925bb7636bef4287748115 100644
|
| --- a/content/browser/renderer_host/input/touch_action_filter_unittest.cc
|
| +++ b/content/browser/renderer_host/input/touch_action_filter_unittest.cc
|
| @@ -106,7 +106,6 @@ static void PanTest(TouchAction action,
|
|
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
| }
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, SimpleFilter) {
|
| @@ -182,7 +181,6 @@ TEST(TouchActionFilterTest, SimpleFilter) {
|
| EXPECT_EQ(kDeltaX, scroll_update.data.scrollUpdate.deltaX);
|
| EXPECT_EQ(kDeltaY, scroll_update.data.scrollUpdate.deltaY);
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, Fling) {
|
| @@ -216,7 +214,6 @@ TEST(TouchActionFilterTest, Fling) {
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_update));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&pad_fling));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&fling_start));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, PanLeft) {
|
| @@ -341,7 +338,25 @@ TEST(TouchActionFilterTest, PanXY) {
|
| EXPECT_EQ(kFlingX, fling_start.data.flingStart.velocityX);
|
| EXPECT_EQ(kFlingY, fling_start.data.flingStart.velocityY);
|
| }
|
| - filter.ResetTouchAction();
|
| +
|
| + {
|
| + // A two-finger gesture is not allowed.
|
| + filter.ResetTouchAction();
|
| + filter.OnSetTouchAction(TOUCH_ACTION_PAN);
|
| + WebGestureEvent scroll_begin =
|
| + SyntheticWebGestureEventBuilder::BuildScrollBegin(-6, 7, kSourceDevice,
|
| + 2);
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_begin));
|
| +
|
| + WebGestureEvent scroll_update =
|
| + SyntheticWebGestureEventBuilder::BuildScrollUpdate(kDX, kDY, 0,
|
| + kSourceDevice);
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_update));
|
| +
|
| + WebGestureEvent fling_start = SyntheticWebGestureEventBuilder::BuildFling(
|
| + kFlingX, kFlingY, kSourceDevice);
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&fling_start));
|
| + }
|
| }
|
|
|
| TEST(TouchActionFilterTest, BitMath) {
|
| @@ -389,14 +404,13 @@ TEST(TouchActionFilterTest, MultiTouch) {
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_begin));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_update));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, Pinch) {
|
| TouchActionFilter filter;
|
|
|
| WebGestureEvent scroll_begin =
|
| - SyntheticWebGestureEventBuilder::BuildScrollBegin(2, 3, kSourceDevice);
|
| + SyntheticWebGestureEventBuilder::BuildScrollBegin(2, 3, kSourceDevice, 2);
|
| WebGestureEvent pinch_begin = SyntheticWebGestureEventBuilder::Build(
|
| WebInputEvent::GesturePinchBegin, kSourceDevice);
|
| WebGestureEvent pinch_update =
|
| @@ -431,11 +445,11 @@ TEST(TouchActionFilterTest, Pinch) {
|
| // Pinch is not allowed with touch-action: pan-x pan-y.
|
| filter.ResetTouchAction();
|
| filter.OnSetTouchAction(TOUCH_ACTION_PAN);
|
| - EXPECT_FALSE(filter.FilterGestureEvent(&scroll_begin));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_begin));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&pinch_begin));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&pinch_update));
|
| EXPECT_TRUE(filter.FilterGestureEvent(&pinch_end));
|
| - EXPECT_FALSE(filter.FilterGestureEvent(&scroll_end));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
|
|
| // Pinch is allowed with touch-action: manipulation.
|
| filter.ResetTouchAction();
|
| @@ -484,19 +498,6 @@ TEST(TouchActionFilterTest, Pinch) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&pinch_update));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&pinch_end));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&scroll_end));
|
| - filter.ResetTouchAction();
|
| -
|
| - scroll_begin.data.scrollBegin.pointerCount = 1;
|
| - // Scrolling should be disallowed for pinch zoom with only
|
| - // one pointer down.
|
| - filter.OnSetTouchAction(TOUCH_ACTION_PINCH_ZOOM);
|
| - EXPECT_TRUE(filter.FilterGestureEvent(&scroll_begin));
|
| - EXPECT_FALSE(filter.FilterGestureEvent(&pinch_begin));
|
| - EXPECT_FALSE(filter.FilterGestureEvent(&pinch_update));
|
| - EXPECT_FALSE(filter.FilterGestureEvent(&pinch_end));
|
| - EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
| -
|
| - scroll_begin.data.scrollBegin.pointerCount = 2;
|
|
|
| // Scrolling is allowed when two fingers are down.
|
| filter.ResetTouchAction();
|
| @@ -506,6 +507,17 @@ TEST(TouchActionFilterTest, Pinch) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&pinch_update));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&pinch_end));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&scroll_end));
|
| +
|
| + // A pinch event sequence with only one pointer is equivalent to a scroll
|
| + // gesture, so disallowed as a pinch gesture.
|
| + scroll_begin.data.scrollBegin.pointerCount = 1;
|
| + filter.ResetTouchAction();
|
| + filter.OnSetTouchAction(TOUCH_ACTION_PINCH_ZOOM);
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_begin));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&pinch_begin));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&pinch_update));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&pinch_end));
|
| + EXPECT_TRUE(filter.FilterGestureEvent(&scroll_end));
|
| }
|
|
|
| TEST(TouchActionFilterTest, DoubleTapWithTouchActionAuto) {
|
| @@ -533,7 +545,6 @@ TEST(TouchActionFilterTest, DoubleTapWithTouchActionAuto) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&tap_cancel));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&tap_down));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&double_tap));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, DoubleTap) {
|
| @@ -562,7 +573,6 @@ TEST(TouchActionFilterTest, DoubleTap) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&tap_down));
|
| EXPECT_FALSE(filter.FilterGestureEvent(&double_tap));
|
| EXPECT_EQ(WebInputEvent::GestureTap, double_tap.type());
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, SingleTapWithTouchActionAuto) {
|
| @@ -581,7 +591,6 @@ TEST(TouchActionFilterTest, SingleTapWithTouchActionAuto) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&unconfirmed_tap1));
|
| EXPECT_EQ(WebInputEvent::GestureTapUnconfirmed, unconfirmed_tap1.type());
|
| EXPECT_FALSE(filter.FilterGestureEvent(&tap));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, SingleTap) {
|
| @@ -601,7 +610,6 @@ TEST(TouchActionFilterTest, SingleTap) {
|
| EXPECT_FALSE(filter.FilterGestureEvent(&unconfirmed_tap1));
|
| EXPECT_EQ(WebInputEvent::GestureTap, unconfirmed_tap1.type());
|
| EXPECT_TRUE(filter.FilterGestureEvent(&tap));
|
| - filter.ResetTouchAction();
|
| }
|
|
|
| TEST(TouchActionFilterTest, TouchActionResetsOnResetTouchAction) {
|
|
|