| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/input/touch_event_queue.h" |
| 6 |
| 5 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
| 6 | 9 |
| 7 #include "base/location.h" | 10 #include "base/location.h" |
| 8 #include "base/logging.h" | 11 #include "base/logging.h" |
| 9 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 13 #include "base/message_loop/message_loop.h" |
| 11 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
| 12 #include "base/thread_task_runner_handle.h" | 15 #include "base/thread_task_runner_handle.h" |
| 13 #include "content/browser/renderer_host/input/timeout_monitor.h" | 16 #include "content/browser/renderer_host/input/timeout_monitor.h" |
| 14 #include "content/browser/renderer_host/input/touch_event_queue.h" | |
| 15 #include "content/common/input/synthetic_web_input_event_builders.h" | 17 #include "content/common/input/synthetic_web_input_event_builders.h" |
| 16 #include "content/common/input/web_touch_event_traits.h" | 18 #include "content/common/input/web_touch_event_traits.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
| 18 #include "third_party/WebKit/public/web/WebInputEvent.h" | 20 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 19 | 21 |
| 20 using blink::WebGestureEvent; | 22 using blink::WebGestureEvent; |
| 21 using blink::WebInputEvent; | 23 using blink::WebInputEvent; |
| 22 using blink::WebTouchEvent; | 24 using blink::WebTouchEvent; |
| 23 using blink::WebTouchPoint; | 25 using blink::WebTouchPoint; |
| 24 | 26 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 51 } | 53 } |
| 52 | 54 |
| 53 void TearDown() override { queue_.reset(); } | 55 void TearDown() override { queue_.reset(); } |
| 54 | 56 |
| 55 // TouchEventQueueClient | 57 // TouchEventQueueClient |
| 56 void SendTouchEventImmediately( | 58 void SendTouchEventImmediately( |
| 57 const TouchEventWithLatencyInfo& event) override { | 59 const TouchEventWithLatencyInfo& event) override { |
| 58 sent_events_.push_back(event.event); | 60 sent_events_.push_back(event.event); |
| 59 sent_events_ids_.push_back(event.event.uniqueTouchEventId); | 61 sent_events_ids_.push_back(event.event.uniqueTouchEventId); |
| 60 if (sync_ack_result_) { | 62 if (sync_ack_result_) { |
| 61 auto sync_ack_result = sync_ack_result_.Pass(); | 63 auto sync_ack_result = std::move(sync_ack_result_); |
| 62 SendTouchEventAck(*sync_ack_result); | 64 SendTouchEventAck(*sync_ack_result); |
| 63 } | 65 } |
| 64 } | 66 } |
| 65 | 67 |
| 66 void OnTouchEventAck(const TouchEventWithLatencyInfo& event, | 68 void OnTouchEventAck(const TouchEventWithLatencyInfo& event, |
| 67 InputEventAckState ack_result) override { | 69 InputEventAckState ack_result) override { |
| 68 ++acked_event_count_; | 70 ++acked_event_count_; |
| 69 last_acked_event_ = event.event; | 71 last_acked_event_ = event.event; |
| 70 last_acked_event_state_ = ack_result; | 72 last_acked_event_state_ = ack_result; |
| 71 if (followup_touch_event_) { | 73 if (followup_touch_event_) { |
| 72 scoped_ptr<WebTouchEvent> followup_touch_event = | 74 scoped_ptr<WebTouchEvent> followup_touch_event = |
| 73 followup_touch_event_.Pass(); | 75 std::move(followup_touch_event_); |
| 74 SendTouchEvent(*followup_touch_event); | 76 SendTouchEvent(*followup_touch_event); |
| 75 } | 77 } |
| 76 if (followup_gesture_event_) { | 78 if (followup_gesture_event_) { |
| 77 scoped_ptr<WebGestureEvent> followup_gesture_event = | 79 scoped_ptr<WebGestureEvent> followup_gesture_event = |
| 78 followup_gesture_event_.Pass(); | 80 std::move(followup_gesture_event_); |
| 79 queue_->OnGestureScrollEvent( | 81 queue_->OnGestureScrollEvent( |
| 80 GestureEventWithLatencyInfo(*followup_gesture_event, | 82 GestureEventWithLatencyInfo(*followup_gesture_event, |
| 81 ui::LatencyInfo())); | 83 ui::LatencyInfo())); |
| 82 } | 84 } |
| 83 } | 85 } |
| 84 | 86 |
| 85 protected: | 87 protected: |
| 86 void SetUpForTouchMoveSlopTesting(double slop_length_dips) { | 88 void SetUpForTouchMoveSlopTesting(double slop_length_dips) { |
| 87 slop_length_dips_ = slop_length_dips; | 89 slop_length_dips_ = slop_length_dips; |
| 88 } | 90 } |
| (...skipping 2518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2607 // TouchMove should be allowed and test for touches state. | 2609 // TouchMove should be allowed and test for touches state. |
| 2608 const WebTouchEvent& event2 = sent_event(); | 2610 const WebTouchEvent& event2 = sent_event(); |
| 2609 EXPECT_EQ(WebInputEvent::TouchMove, event2.type); | 2611 EXPECT_EQ(WebInputEvent::TouchMove, event2.type); |
| 2610 EXPECT_EQ(WebTouchPoint::StateStationary, event2.touches[0].state); | 2612 EXPECT_EQ(WebTouchPoint::StateStationary, event2.touches[0].state); |
| 2611 EXPECT_EQ(WebTouchPoint::StateMoved, event2.touches[1].state); | 2613 EXPECT_EQ(WebTouchPoint::StateMoved, event2.touches[1].state); |
| 2612 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 2614 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 2613 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 2615 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 2614 } | 2616 } |
| 2615 | 2617 |
| 2616 } // namespace content | 2618 } // namespace content |
| OLD | NEW |