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

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

Issue 132083006: Delegate touch handler registration logic to the TouchEventQueue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment cleanup Created 6 years, 11 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 "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "content/browser/renderer_host/input/timeout_monitor.h" 9 #include "content/browser/renderer_host/input/timeout_monitor.h"
10 #include "content/browser/renderer_host/input/touch_event_queue.h" 10 #include "content/browser/renderer_host/input/touch_event_queue.h"
(...skipping 17 matching lines...) Expand all
28 TouchEventQueueTest() 28 TouchEventQueueTest()
29 : sent_event_count_(0), 29 : sent_event_count_(0),
30 acked_event_count_(0), 30 acked_event_count_(0),
31 last_acked_event_state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {} 31 last_acked_event_state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {}
32 32
33 virtual ~TouchEventQueueTest() {} 33 virtual ~TouchEventQueueTest() {}
34 34
35 // testing::Test 35 // testing::Test
36 virtual void SetUp() OVERRIDE { 36 virtual void SetUp() OVERRIDE {
37 queue_.reset(new TouchEventQueue(this)); 37 queue_.reset(new TouchEventQueue(this));
38 queue_->OnHasTouchEventHandlers(true);
38 } 39 }
39 40
40 virtual void TearDown() OVERRIDE { 41 virtual void TearDown() OVERRIDE {
41 queue_.reset(); 42 queue_.reset();
42 } 43 }
43 44
44 // TouchEventQueueClient 45 // TouchEventQueueClient
45 virtual void SendTouchEventImmediately( 46 virtual void SendTouchEventImmediately(
46 const TouchEventWithLatencyInfo& event) OVERRIDE { 47 const TouchEventWithLatencyInfo& event) OVERRIDE {
47 ++sent_event_count_; 48 ++sent_event_count_;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 size_t GetAndResetSentEventCount() { 139 size_t GetAndResetSentEventCount() {
139 size_t count = sent_event_count_; 140 size_t count = sent_event_count_;
140 sent_event_count_ = 0; 141 sent_event_count_ = 0;
141 return count; 142 return count;
142 } 143 }
143 144
144 bool IsPendingAckTouchStart() const { 145 bool IsPendingAckTouchStart() const {
145 return queue_->IsPendingAckTouchStart(); 146 return queue_->IsPendingAckTouchStart();
146 } 147 }
147 148
148 void Flush() { 149 void OnHasTouchEventHandlers(bool has_handlers) {
149 queue_->FlushQueue(); 150 queue_->OnHasTouchEventHandlers(has_handlers);
150 }
151
152 void SetEnableTouchForwarding(bool enabled) {
153 queue_->no_touch_to_renderer_ = !enabled;
154 } 151 }
155 152
156 bool WillForwardTouchEvents() { 153 bool WillForwardTouchEvents() {
157 return !queue_->no_touch_to_renderer_ && !queue_->HasTimeoutEvent(); 154 return queue_->has_handlers_ &&
155 !queue_->scroll_in_progress_ &&
156 !queue_->HasTimeoutEvent();
158 } 157 }
159 158
160 bool IsTimeoutRunning() { 159 bool IsTimeoutRunning() {
161 return queue_->IsTimeoutRunningForTesting(); 160 return queue_->IsTimeoutRunningForTesting();
162 } 161 }
163 162
164 size_t queued_event_count() const { 163 size_t queued_event_count() const {
165 return queue_->size(); 164 return queue_->size();
166 } 165 }
167 166
168 const WebTouchEvent& latest_event() const { 167 const WebTouchEvent& latest_event() const {
169 return queue_->GetLatestEventForTesting().event; 168 return queue_->GetLatestEventForTesting().event;
170 } 169 }
171 170
172 const WebTouchEvent& acked_event() const { 171 const WebTouchEvent& acked_event() const {
173 return last_acked_event_; 172 return last_acked_event_;
174 } 173 }
175 174
176 const WebTouchEvent& sent_event() const { 175 const WebTouchEvent& sent_event() const {
177 return last_sent_event_; 176 return last_sent_event_;
178 } 177 }
179 178
180 InputEventAckState acked_event_state() const { 179 InputEventAckState acked_event_state() const {
181 return last_acked_event_state_; 180 return last_acked_event_state_;
182 } 181 }
183 182
184 void set_no_touch_to_renderer(bool no_touch) {
185 queue_->no_touch_to_renderer_ = no_touch;
186 }
187
188 bool no_touch_to_renderer() const {
189 return queue_->no_touch_to_renderer_;
190 }
191
192 private: 183 private:
193 void SendTouchEvent() { 184 void SendTouchEvent() {
194 SendTouchEvent(touch_event_); 185 SendTouchEvent(touch_event_);
195 touch_event_.ResetPoints(); 186 touch_event_.ResetPoints();
196 } 187 }
197 188
198 scoped_ptr<TouchEventQueue> queue_; 189 scoped_ptr<TouchEventQueue> queue_;
199 size_t sent_event_count_; 190 size_t sent_event_count_;
200 size_t acked_event_count_; 191 size_t acked_event_count_;
201 WebTouchEvent last_sent_event_; 192 WebTouchEvent last_sent_event_;
(...skipping 28 matching lines...) Expand all
230 // Receive an ACK for the second touch-event. 221 // Receive an ACK for the second touch-event.
231 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); 222 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED);
232 EXPECT_EQ(0U, queued_event_count()); 223 EXPECT_EQ(0U, queued_event_count());
233 EXPECT_EQ(0U, GetAndResetSentEventCount()); 224 EXPECT_EQ(0U, GetAndResetSentEventCount());
234 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 225 EXPECT_EQ(1U, GetAndResetAckedEventCount());
235 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); 226 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type);
236 } 227 }
237 228
238 // Tests that the touch-queue is emptied if a page stops listening for touch 229 // Tests that the touch-queue is emptied if a page stops listening for touch
239 // events. 230 // events.
240 TEST_F(TouchEventQueueTest, Flush) { 231 TEST_F(TouchEventQueueTest, QueueFlushedWhenHandlersRemoved) {
241 Flush(); 232 OnHasTouchEventHandlers(true);
242 EXPECT_EQ(0U, queued_event_count()); 233 EXPECT_EQ(0U, queued_event_count());
243 EXPECT_EQ(0U, GetAndResetSentEventCount()); 234 EXPECT_EQ(0U, GetAndResetSentEventCount());
244 235
245 // Send a touch-press event. 236 // Send a touch-press event.
246 PressTouchPoint(1, 1); 237 PressTouchPoint(1, 1);
247 EXPECT_EQ(1U, GetAndResetSentEventCount()); 238 EXPECT_EQ(1U, GetAndResetSentEventCount());
248 239
249 ReleaseTouchPoint(0); 240 ReleaseTouchPoint(0);
250 241
251 // Events will be queued until the first sent event is ack'ed. 242 // Events will be queued until the first sent event is ack'ed.
252 for (int i = 5; i < 15; ++i) { 243 for (int i = 5; i < 15; ++i) {
253 PressTouchPoint(1, 1); 244 PressTouchPoint(1, 1);
254 MoveTouchPoint(0, i, i); 245 MoveTouchPoint(0, i, i);
255 ReleaseTouchPoint(0); 246 ReleaseTouchPoint(0);
256 } 247 }
257 EXPECT_EQ(32U, queued_event_count()); 248 EXPECT_EQ(32U, queued_event_count());
258 EXPECT_EQ(0U, GetAndResetSentEventCount()); 249 EXPECT_EQ(0U, GetAndResetSentEventCount());
259 250
260 // Receive an ACK for the first touch-event. One of the queued touch-event 251 // Receive an ACK for the first touch-event. One of the queued touch-event
261 // should be forwarded. 252 // should be forwarded.
262 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); 253 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED);
263 EXPECT_EQ(31U, queued_event_count()); 254 EXPECT_EQ(31U, queued_event_count());
264 EXPECT_EQ(1U, GetAndResetSentEventCount()); 255 EXPECT_EQ(1U, GetAndResetSentEventCount());
265 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 256 EXPECT_EQ(1U, GetAndResetAckedEventCount());
266 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); 257 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type);
267 258
268 // Flush the queue. The touch-event queue should now be emptied, but none of 259 // Flush the queue. The touch-event queue should now be emptied, but none of
269 // the queued touch-events should be sent to the renderer. 260 // the queued touch-events should be sent to the renderer.
270 Flush(); 261 OnHasTouchEventHandlers(false);
271 EXPECT_EQ(0U, queued_event_count()); 262 EXPECT_EQ(0U, queued_event_count());
272 EXPECT_EQ(0U, GetAndResetSentEventCount()); 263 EXPECT_EQ(0U, GetAndResetSentEventCount());
273 EXPECT_EQ(31U, GetAndResetAckedEventCount()); 264 EXPECT_EQ(31U, GetAndResetAckedEventCount());
274 } 265 }
275 266
267 // Tests that removal of a touch handler during a touch sequence will prevent
268 // the remaining sequence from being forwarded, even if another touch handler is
269 // registered during the same touch sequence.
270 TEST_F(TouchEventQueueTest, ActiveSequenceDroppedWhenHandlersRemoved) {
271 // Send a touch-press event.
272 PressTouchPoint(1, 1);
273 EXPECT_EQ(1U, GetAndResetSentEventCount());
274 EXPECT_EQ(1U, queued_event_count());
275
276 // Queue a touch-move event.
277 MoveTouchPoint(0, 5, 5);
278 EXPECT_EQ(2U, queued_event_count());
279 EXPECT_EQ(0U, GetAndResetAckedEventCount());
280 EXPECT_EQ(0U, GetAndResetSentEventCount());
281
282 // Touch handle deregistration should flush the queue.
283 OnHasTouchEventHandlers(false);
284 EXPECT_EQ(2U, GetAndResetAckedEventCount());
285 EXPECT_EQ(0U, queued_event_count());
286
287 // The ack should be ignored as the touch queue is now empty.
288 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
289 EXPECT_EQ(0U, GetAndResetAckedEventCount());
290 EXPECT_EQ(0U, queued_event_count());
291
292 // Events should be dropped while there is no touch handler.
293 MoveTouchPoint(0, 10, 10);
294 EXPECT_EQ(0U, queued_event_count());
295 EXPECT_EQ(1U, GetAndResetAckedEventCount());
296 EXPECT_EQ(0U, GetAndResetSentEventCount());
297
298 // Simulate touch handler registration in the middle of a touch sequence.
299 OnHasTouchEventHandlers(true);
300
301 // The touch end for the interrupted sequence should be dropped.
302 ReleaseTouchPoint(0);
303 EXPECT_EQ(0U, queued_event_count());
304 EXPECT_EQ(1U, GetAndResetAckedEventCount());
305 EXPECT_EQ(0U, GetAndResetSentEventCount());
306
307 // A new touch sequence should be forwarded properly.
308 PressTouchPoint(1, 1);
309 EXPECT_EQ(1U, queued_event_count());
310 EXPECT_EQ(1U, GetAndResetSentEventCount());
311 }
312
276 // Tests that touch-events are coalesced properly in the queue. 313 // Tests that touch-events are coalesced properly in the queue.
277 TEST_F(TouchEventQueueTest, Coalesce) { 314 TEST_F(TouchEventQueueTest, Coalesce) {
278 // Send a touch-press event. 315 // Send a touch-press event.
279 PressTouchPoint(1, 1); 316 PressTouchPoint(1, 1);
280 EXPECT_EQ(1U, GetAndResetSentEventCount()); 317 EXPECT_EQ(1U, GetAndResetSentEventCount());
281 318
282 // Send a few touch-move events, followed by a touch-release event. All the 319 // Send a few touch-move events, followed by a touch-release event. All the
283 // touch-move events should be coalesced into a single event. 320 // touch-move events should be coalesced into a single event.
284 for (int i = 5; i < 15; ++i) 321 for (int i = 5; i < 15; ++i)
285 MoveTouchPoint(0, i, i); 322 MoveTouchPoint(0, i, i);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 MoveTouchPoint(0, 10, 10); 423 MoveTouchPoint(0, 10, 10);
387 EXPECT_EQ(0U, GetAndResetSentEventCount()); 424 EXPECT_EQ(0U, GetAndResetSentEventCount());
388 EXPECT_EQ(2U, queued_event_count()); 425 EXPECT_EQ(2U, queued_event_count());
389 426
390 // Receive an ACK for the press. This should cause the queued touch-move to 427 // Receive an ACK for the press. This should cause the queued touch-move to
391 // be sent to the renderer. 428 // be sent to the renderer.
392 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); 429 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED);
393 EXPECT_EQ(1U, GetAndResetSentEventCount()); 430 EXPECT_EQ(1U, GetAndResetSentEventCount());
394 EXPECT_EQ(1U, queued_event_count()); 431 EXPECT_EQ(1U, queued_event_count());
395 432
396 Flush(); 433 OnHasTouchEventHandlers(false);
397 EXPECT_EQ(0U, GetAndResetSentEventCount()); 434 EXPECT_EQ(0U, GetAndResetSentEventCount());
398 EXPECT_EQ(0U, queued_event_count()); 435 EXPECT_EQ(0U, queued_event_count());
399 436
400 // Now receive an ACK for the move. 437 // Now receive an ACK for the move.
401 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); 438 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED);
402 EXPECT_EQ(0U, GetAndResetSentEventCount()); 439 EXPECT_EQ(0U, GetAndResetSentEventCount());
403 EXPECT_EQ(0U, queued_event_count()); 440 EXPECT_EQ(0U, queued_event_count());
404 } 441 }
405 442
406 // Tests that touch-move events are not sent to the renderer if the preceding 443 // Tests that touch-move events are not sent to the renderer if the preceding
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 EXPECT_EQ(1U, queued_event_count()); 715 EXPECT_EQ(1U, queued_event_count());
679 EXPECT_EQ(1U, GetAndResetSentEventCount()); 716 EXPECT_EQ(1U, GetAndResetSentEventCount());
680 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 717 EXPECT_EQ(1U, GetAndResetAckedEventCount());
681 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); 718 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state());
682 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); 719 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type);
683 } 720 }
684 721
685 // Tests basic TouchEvent forwarding suppression. 722 // Tests basic TouchEvent forwarding suppression.
686 TEST_F(TouchEventQueueTest, NoTouchBasic) { 723 TEST_F(TouchEventQueueTest, NoTouchBasic) {
687 // Disable TouchEvent forwarding. 724 // Disable TouchEvent forwarding.
688 SetEnableTouchForwarding(false); 725 OnHasTouchEventHandlers(false);
689 MoveTouchPoint(0, 30, 5); 726 MoveTouchPoint(0, 30, 5);
690 EXPECT_EQ(0U, GetAndResetSentEventCount()); 727 EXPECT_EQ(0U, GetAndResetSentEventCount());
691 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 728 EXPECT_EQ(1U, GetAndResetAckedEventCount());
692 729
693 // TouchMove should not be sent to renderer. 730 // TouchMove should not be sent to renderer.
694 MoveTouchPoint(0, 65, 10); 731 MoveTouchPoint(0, 65, 10);
695 EXPECT_EQ(0U, GetAndResetSentEventCount()); 732 EXPECT_EQ(0U, GetAndResetSentEventCount());
696 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 733 EXPECT_EQ(1U, GetAndResetAckedEventCount());
697 734
698 // TouchEnd should not be sent to renderer. 735 // TouchEnd should not be sent to renderer.
699 ReleaseTouchPoint(0); 736 ReleaseTouchPoint(0);
700 EXPECT_EQ(0U, GetAndResetSentEventCount()); 737 EXPECT_EQ(0U, GetAndResetSentEventCount());
701 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 738 EXPECT_EQ(1U, GetAndResetAckedEventCount());
702 739
703 // TouchStart should not be sent to renderer. 740 // TouchStart should not be sent to renderer.
704 PressTouchPoint(5, 5); 741 PressTouchPoint(5, 5);
705 EXPECT_EQ(0U, GetAndResetSentEventCount()); 742 EXPECT_EQ(0U, GetAndResetSentEventCount());
706 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 743 EXPECT_EQ(1U, GetAndResetAckedEventCount());
707 744
708 // Enable TouchEvent forwarding. 745 // Enable TouchEvent forwarding.
709 SetEnableTouchForwarding(true); 746 OnHasTouchEventHandlers(true);
710 747
711 PressTouchPoint(80, 10); 748 PressTouchPoint(80, 10);
712 EXPECT_EQ(1U, GetAndResetSentEventCount()); 749 EXPECT_EQ(1U, GetAndResetSentEventCount());
713 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 750 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
714 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 751 EXPECT_EQ(1U, GetAndResetAckedEventCount());
715 752
716 MoveTouchPoint(0, 80, 20); 753 MoveTouchPoint(0, 80, 20);
717 EXPECT_EQ(1U, GetAndResetSentEventCount()); 754 EXPECT_EQ(1U, GetAndResetSentEventCount());
718 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 755 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
719 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 756 EXPECT_EQ(1U, GetAndResetAckedEventCount());
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 TEST_F(TouchEventQueueTest, NoTouchTimeoutIfAckIsSynchronous) { 1007 TEST_F(TouchEventQueueTest, NoTouchTimeoutIfAckIsSynchronous) {
971 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); 1008 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs);
972 1009
973 // Queue a TouchStart. 1010 // Queue a TouchStart.
974 SetSyncAckResult(INPUT_EVENT_ACK_STATE_CONSUMED); 1011 SetSyncAckResult(INPUT_EVENT_ACK_STATE_CONSUMED);
975 ASSERT_FALSE(IsTimeoutRunning()); 1012 ASSERT_FALSE(IsTimeoutRunning());
976 PressTouchPoint(0, 1); 1013 PressTouchPoint(0, 1);
977 EXPECT_FALSE(IsTimeoutRunning()); 1014 EXPECT_FALSE(IsTimeoutRunning());
978 } 1015 }
979 1016
1017 // Tests that the timeout is disabled if the touch handler disappears.
1018 TEST_F(TouchEventQueueTest, TouchTimeoutStoppedIfTouchHandlerRemoved) {
1019 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs);
1020
1021 // Queue a TouchStart.
1022 PressTouchPoint(0, 1);
1023 ASSERT_TRUE(IsTimeoutRunning());
1024
1025 // Unload the touch handler.
1026 OnHasTouchEventHandlers(false);
1027 EXPECT_FALSE(IsTimeoutRunning());
1028 }
1029
980 // Tests that a TouchCancel timeout plays nice when the timed out touch stream 1030 // Tests that a TouchCancel timeout plays nice when the timed out touch stream
981 // turns into a scroll gesture sequence. 1031 // turns into a scroll gesture sequence.
982 TEST_F(TouchEventQueueTest, TouchTimeoutWithFollowupGesture) { 1032 TEST_F(TouchEventQueueTest, TouchTimeoutWithFollowupGesture) {
983 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); 1033 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs);
984 1034
985 // Queue a TouchStart. 1035 // Queue a TouchStart.
986 PressTouchPoint(0, 1); 1036 PressTouchPoint(0, 1);
987 EXPECT_TRUE(IsTimeoutRunning()); 1037 EXPECT_TRUE(IsTimeoutRunning());
988 EXPECT_TRUE(WillForwardTouchEvents()); 1038 EXPECT_TRUE(WillForwardTouchEvents());
989 EXPECT_EQ(1U, GetAndResetSentEventCount()); 1039 EXPECT_EQ(1U, GetAndResetSentEventCount());
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 EXPECT_TRUE(WillForwardTouchEvents()); 1189 EXPECT_TRUE(WillForwardTouchEvents());
1140 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 1190 EXPECT_EQ(0U, GetAndResetAckedEventCount());
1141 EXPECT_EQ(0U, GetAndResetSentEventCount()); 1191 EXPECT_EQ(0U, GetAndResetSentEventCount());
1142 1192
1143 // Subsequent events should be handled normally. 1193 // Subsequent events should be handled normally.
1144 PressTouchPoint(0, 1); 1194 PressTouchPoint(0, 1);
1145 EXPECT_EQ(1U, GetAndResetSentEventCount()); 1195 EXPECT_EQ(1U, GetAndResetSentEventCount());
1146 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 1196 EXPECT_EQ(0U, GetAndResetAckedEventCount());
1147 } 1197 }
1148 } // namespace content 1198 } // 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