Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: content/browser/renderer_host/input/touch_event_queue_unittest.cc

Issue 23856016: Send touch cancel to renderer when scrolling starts (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/browser/renderer_host/input/touch_event_queue.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/logging.h" 6 #include "base/logging.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "content/browser/renderer_host/input/mock_web_input_event_builders.h" 8 #include "content/browser/renderer_host/input/mock_web_input_event_builders.h"
9 #include "content/browser/renderer_host/input/touch_event_queue.h" 9 #include "content/browser/renderer_host/input/touch_event_queue.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 111 }
112 112
113 const WebTouchEvent& acked_event() const { 113 const WebTouchEvent& acked_event() const {
114 return last_acked_event_; 114 return last_acked_event_;
115 } 115 }
116 116
117 InputEventAckState acked_event_state() const { 117 InputEventAckState acked_event_state() const {
118 return last_acked_event_state_; 118 return last_acked_event_state_;
119 } 119 }
120 120
121 void set_no_touch_move_to_renderer(bool no_touch_move) { 121 void set_no_touch_to_renderer(bool no_touch) {
122 queue_->set_no_touch_move_to_renderer(no_touch_move); 122 queue_->no_touch_to_renderer_ = no_touch;
123 } 123 }
124 124
125 bool no_touch_move_to_renderer() const { 125 bool no_touch_to_renderer() const {
126 return queue_->no_touch_move_to_renderer_; 126 return queue_->no_touch_to_renderer_;
127 } 127 }
128 128
129 private: 129 private:
130 scoped_ptr<TouchEventQueue> queue_; 130 scoped_ptr<TouchEventQueue> queue_;
131 size_t sent_event_count_; 131 size_t sent_event_count_;
132 size_t acked_event_count_; 132 size_t acked_event_count_;
133 WebTouchEvent last_sent_event_; 133 WebTouchEvent last_sent_event_;
134 WebTouchEvent last_acked_event_; 134 WebTouchEvent last_acked_event_;
135 InputEventAckState last_acked_event_state_; 135 InputEventAckState last_acked_event_state_;
136 MockWebTouchEvent touch_event_; 136 MockWebTouchEvent touch_event_;
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 634 EXPECT_EQ(1U, GetAndResetAckedEventCount());
635 635
636 // Touch moves may trigger scroll. 636 // Touch moves may trigger scroll.
637 MoveTouchPoint(0, 20, 5); 637 MoveTouchPoint(0, 20, 5);
638 SendTouchEvent(); 638 SendTouchEvent();
639 EXPECT_EQ(1U, GetAndResetSentEventCount()); 639 EXPECT_EQ(1U, GetAndResetSentEventCount());
640 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 640 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
641 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 641 EXPECT_EQ(1U, GetAndResetAckedEventCount());
642 642
643 // Touch move should not be sent to renderer (e.g., when scrolling starts). 643 // Touch move should not be sent to renderer (e.g., when scrolling starts).
644 set_no_touch_move_to_renderer(true); 644 set_no_touch_to_renderer(true);
645 MoveTouchPoint(0, 30, 5); 645 MoveTouchPoint(0, 30, 5);
646 SendTouchEvent(); 646 SendTouchEvent();
647 EXPECT_EQ(0U, GetAndResetSentEventCount()); 647 EXPECT_EQ(0U, GetAndResetSentEventCount());
648 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 648 EXPECT_EQ(1U, GetAndResetAckedEventCount());
649 649
650 // Touch move should not be sent to renderer. 650 // Touch move should not be sent to renderer.
651 MoveTouchPoint(0, 65, 10); 651 MoveTouchPoint(0, 65, 10);
652 SendTouchEvent(); 652 SendTouchEvent();
653 EXPECT_EQ(0U, GetAndResetSentEventCount()); 653 EXPECT_EQ(0U, GetAndResetSentEventCount());
654 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 654 EXPECT_EQ(1U, GetAndResetAckedEventCount());
655 655
656 // Touch end should still be sent to renderer. 656 // Touch end should not be sent to renderer.
657 ReleaseTouchPoint(0); 657 ReleaseTouchPoint(0);
658 SendTouchEvent(); 658 SendTouchEvent();
659 EXPECT_EQ(1U, GetAndResetSentEventCount()); 659 EXPECT_EQ(0U, GetAndResetSentEventCount());
660 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 660 EXPECT_EQ(1U, GetAndResetAckedEventCount());
661 661
662 // Resume sending touch moves to renderer (e.g., when scrolling ends). 662 // Resume sending touch moves to renderer (e.g., when scrolling ends).
663 set_no_touch_move_to_renderer(false); 663 set_no_touch_to_renderer(false);
664 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
665 EXPECT_EQ(1U, GetAndResetAckedEventCount());
666 664
667 // Now touch events should come through to renderer. 665 // Now touch events should come through to renderer.
668 PressTouchPoint(80, 10); 666 PressTouchPoint(80, 10);
669 SendTouchEvent(); 667 SendTouchEvent();
670 EXPECT_EQ(1U, GetAndResetSentEventCount()); 668 EXPECT_EQ(1U, GetAndResetSentEventCount());
671 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 669 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
672 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 670 EXPECT_EQ(1U, GetAndResetAckedEventCount());
673 671
674 MoveTouchPoint(0, 80, 20); 672 MoveTouchPoint(0, 80, 20);
675 SendTouchEvent(); 673 SendTouchEvent();
676 EXPECT_EQ(1U, GetAndResetSentEventCount()); 674 EXPECT_EQ(1U, GetAndResetSentEventCount());
677 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 675 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
678 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 676 EXPECT_EQ(1U, GetAndResetAckedEventCount());
679 677
680 ReleaseTouchPoint(0); 678 ReleaseTouchPoint(0);
681 SendTouchEvent(); 679 SendTouchEvent();
682 EXPECT_EQ(1U, GetAndResetSentEventCount()); 680 EXPECT_EQ(1U, GetAndResetSentEventCount());
683 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 681 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
684 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 682 EXPECT_EQ(1U, GetAndResetAckedEventCount());
685 } 683 }
686 684
687 } // namespace content 685 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/touch_event_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698