Chromium Code Reviews| 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..bc8c1856769d7c238a12bef340e007f42f59ca97 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,16 @@ 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, event_id); |
| InputHostMsg_HandleInputEvent_ACK response(0, ack); |
| widget_host_->OnMessageReceived(response); |
| } |
| @@ -466,10 +473,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; |
|
jdduke (slow)
2015/05/12 16:07:11
Again, I don't think we should use this logic. Let
lanwei
2015/05/13 21:01:53
Done.
|
| + 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 +1122,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, |
| + press.unique_event_id()); |
| widget_host_->OnMessageReceived(InputHostMsg_HandleInputEvent_ACK(0, ack)); |
| EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); |
| @@ -2780,14 +2800,14 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollWithTouchEvents) { |
| // The test sends an intermingled sequence of touch and gesture events. |
| PressTouchPoint(0, 1); |
|
jdduke (slow)
2015/05/12 16:07:11
Looks like only 2 methods use the |PressTouchPoint
lanwei
2015/05/13 21:01:53
Done.
|
| - 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 +3332,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()); |