| Index: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
| index aba2b57322ef07d0fe0960cff38befe6ac9c07b5..b01be69dc65dd54589258de1cf815fc5fd13d052 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
| @@ -443,9 +443,17 @@ class RenderWidgetHostViewAuraTest : public testing::Test {
|
|
|
| void SendInputEventACK(WebInputEvent::Type type,
|
| InputEventAckState ack_result) {
|
| - InputHostMsg_HandleInputEvent_ACK_Params ack;
|
| - ack.type = type;
|
| - ack.state = ack_result;
|
| + DCHECK(!WebInputEvent::isTouchEventType(type));
|
| + InputEventAck ack(type, ack_result);
|
| + InputHostMsg_HandleInputEvent_ACK response(0, ack);
|
| + widget_host_->OnMessageReceived(response);
|
| + }
|
| +
|
| + void SendTouchEventACK(WebInputEvent::Type type, uint32 event_id,
|
| + InputEventAckState ack_result) {
|
| + DCHECK(WebInputEvent::isTouchEventType(type));
|
| + InputEventAck ack(type, ack_result);
|
| + ack.unique_touch_event_id = event_id;
|
| InputHostMsg_HandleInputEvent_ACK response(0, ack);
|
| widget_host_->OnMessageReceived(response);
|
| }
|
| @@ -466,10 +474,23 @@ class RenderWidgetHostViewAuraTest : public testing::Test {
|
| return;
|
| }
|
|
|
| - if (WebInputEventTraits::IgnoresAckDisposition(*get<0>(params)))
|
| + if (!WebInputEventTraits::WillReceiveAckFromRenderer(*get<0>(params)))
|
| return;
|
|
|
| - SendInputEventACK(get<0>(params)->type, ack_result);
|
| + SendTouchEventACK(get<0>(params)->type, LastSentEventID(), ack_result);
|
| + }
|
| +
|
| + uint32 LastSentEventID() {
|
| + uint32 last_sent_event_id = 0;
|
| + size_t count = sink_->message_count();
|
| + DCHECK_GT(count, 0U);
|
| + for (size_t i = 0; i < count; ++i) {
|
| + const WebInputEvent* input_event =
|
| + GetInputEventFromMessage(*sink_->GetMessageAt(i));
|
| + last_sent_event_id =
|
| + WebInputEventTraits::GetUniqueTouchEventId(*input_event);
|
| + }
|
| + return last_sent_event_id;
|
| }
|
|
|
| protected:
|
| @@ -1102,9 +1123,9 @@ TEST_F(RenderWidgetHostViewAuraTest, TouchEventState) {
|
| widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false));
|
|
|
| // Ack'ing the outstanding event should flush the pending touch queue.
|
| - InputHostMsg_HandleInputEvent_ACK_Params ack;
|
| - ack.type = blink::WebInputEvent::TouchStart;
|
| - ack.state = INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS;
|
| + InputEventAck ack(blink::WebInputEvent::TouchStart,
|
| + INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
|
| + ack.unique_touch_event_id = press.unique_event_id();
|
| widget_host_->OnMessageReceived(InputHostMsg_HandleInputEvent_ACK(0, ack));
|
| EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
|
|
|
| @@ -2780,14 +2801,14 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollWithTouchEvents) {
|
|
|
| // The test sends an intermingled sequence of touch and gesture events.
|
| PressTouchPoint(0, 1);
|
| - SendInputEventACK(WebInputEvent::TouchStart,
|
| + SendTouchEventACK(WebInputEvent::TouchStart, LastSentEventID(),
|
| INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
|
|
|
| MoveTouchPoint(0, 20, 5);
|
| - EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
|
| - SendInputEventACK(WebInputEvent::TouchMove,
|
| + SendTouchEventACK(WebInputEvent::TouchMove, LastSentEventID(),
|
| INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
|
|
|
| EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
|
| EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
|
| @@ -3312,13 +3333,13 @@ TEST_F(RenderWidgetHostViewAuraTest, CorrectNumberOfAcksAreDispatched) {
|
| ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, ui::EventTimeForNow());
|
|
|
| view_->OnTouchEvent(&press1);
|
| - SendInputEventACK(blink::WebInputEvent::TouchStart,
|
| + SendTouchEventACK(blink::WebInputEvent::TouchStart, press1.unique_event_id(),
|
| INPUT_EVENT_ACK_STATE_CONSUMED);
|
|
|
| ui::TouchEvent press2(
|
| ui::ET_TOUCH_PRESSED, gfx::Point(20, 20), 1, ui::EventTimeForNow());
|
| view_->OnTouchEvent(&press2);
|
| - SendInputEventACK(blink::WebInputEvent::TouchStart,
|
| + SendTouchEventACK(blink::WebInputEvent::TouchStart, press2.unique_event_id(),
|
| INPUT_EVENT_ACK_STATE_CONSUMED);
|
|
|
| EXPECT_EQ(2U, view_->dispatcher_->processed_touch_event_count());
|
|
|