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..6a83fd82750c96520682dcdaa6d03974285b7f87 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,9 @@ 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; |
+ InputEventAck ack(type, ack_result); |
+ if (WebInputEvent::isTouchEventType(type)) |
+ ack.unique_touch_event_id = last_sent_event_id_; |
InputHostMsg_HandleInputEvent_ACK response(0, ack); |
widget_host_->OnMessageReceived(response); |
} |
@@ -466,12 +466,25 @@ class RenderWidgetHostViewAuraTest : public testing::Test { |
return; |
} |
- if (WebInputEventTraits::IgnoresAckDisposition(*get<0>(params))) |
+ if (!WebInputEventTraits::WillReceiveAckFromRenderer(*get<0>(params))) |
return; |
+ SetLastSentEventIDFromSentEvent(); |
SendInputEventACK(get<0>(params)->type, ack_result); |
} |
+ void SetLastSentEventID(uint32 event_id) { last_sent_event_id_ = event_id; } |
jdduke (slow)
2015/05/07 21:11:16
Instead of setting the id and trying to guess it,
|
+ |
+ void SetLastSentEventIDFromSentEvent() { |
+ size_t count = sink_->message_count(); |
+ for (size_t i = 0; i < count; ++i) { |
+ const WebInputEvent* input_event = |
+ GetInputEventFromMessage(*sink_->GetMessageAt(i)); |
+ last_sent_event_id_ = |
+ WebInputEventTraits::GetUniqueTouchEventId(*input_event); |
+ } |
+ } |
+ |
protected: |
// If true, then calls RWH::Shutdown() instead of deleting RWH. |
bool widget_host_uses_shutdown_to_destroy_; |
@@ -497,6 +510,8 @@ class RenderWidgetHostViewAuraTest : public testing::Test { |
IPC::TestSink* sink_; |
+ uint32 last_sent_event_id_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest); |
}; |
@@ -1102,9 +1117,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,11 +2795,13 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollWithTouchEvents) { |
// The test sends an intermingled sequence of touch and gesture events. |
PressTouchPoint(0, 1); |
+ SetLastSentEventIDFromSentEvent(); |
SendInputEventACK(WebInputEvent::TouchStart, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
MoveTouchPoint(0, 20, 5); |
+ SetLastSentEventIDFromSentEvent(); |
EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
SendInputEventACK(WebInputEvent::TouchMove, |
INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
@@ -3312,12 +3329,14 @@ TEST_F(RenderWidgetHostViewAuraTest, CorrectNumberOfAcksAreDispatched) { |
ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, ui::EventTimeForNow()); |
view_->OnTouchEvent(&press1); |
+ SetLastSentEventID(press1.unique_event_id()); |
SendInputEventACK(blink::WebInputEvent::TouchStart, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
ui::TouchEvent press2( |
ui::ET_TOUCH_PRESSED, gfx::Point(20, 20), 1, ui::EventTimeForNow()); |
view_->OnTouchEvent(&press2); |
+ SetLastSentEventID(press2.unique_event_id()); |
SendInputEventACK(blink::WebInputEvent::TouchStart, |
INPUT_EVENT_ACK_STATE_CONSUMED); |