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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc

Issue 2725263002: Revert of Fix unit tests to enable them testing with the rAF aligned touch input. (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <tuple> 10 #include <tuple>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/location.h" 14 #include "base/location.h"
15 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/memory/ptr_util.h" 16 #include "base/memory/ptr_util.h"
17 #include "base/memory/shared_memory.h" 17 #include "base/memory/shared_memory.h"
18 #include "base/message_loop/message_loop.h" 18 #include "base/message_loop/message_loop.h"
19 #include "base/run_loop.h" 19 #include "base/run_loop.h"
20 #include "base/single_thread_task_runner.h" 20 #include "base/single_thread_task_runner.h"
21 #include "base/strings/utf_string_conversions.h" 21 #include "base/strings/utf_string_conversions.h"
22 #include "base/test/scoped_feature_list.h"
23 #include "base/test/simple_test_tick_clock.h" 22 #include "base/test/simple_test_tick_clock.h"
24 #include "base/threading/thread_task_runner_handle.h" 23 #include "base/threading/thread_task_runner_handle.h"
25 #include "build/build_config.h" 24 #include "build/build_config.h"
26 #include "cc/output/begin_frame_args.h" 25 #include "cc/output/begin_frame_args.h"
27 #include "cc/output/compositor_frame.h" 26 #include "cc/output/compositor_frame.h"
28 #include "cc/output/compositor_frame_metadata.h" 27 #include "cc/output/compositor_frame_metadata.h"
29 #include "cc/output/copy_output_request.h" 28 #include "cc/output/copy_output_request.h"
30 #include "cc/surfaces/surface.h" 29 #include "cc/surfaces/surface.h"
31 #include "cc/surfaces/surface_manager.h" 30 #include "cc/surfaces/surface_manager.h"
32 #include "components/display_compositor/gl_helper.h" 31 #include "components/display_compositor/gl_helper.h"
(...skipping 15 matching lines...) Expand all
48 #include "content/browser/renderer_host/resize_lock.h" 47 #include "content/browser/renderer_host/resize_lock.h"
49 #include "content/browser/renderer_host/text_input_manager.h" 48 #include "content/browser/renderer_host/text_input_manager.h"
50 #include "content/browser/web_contents/web_contents_view_aura.h" 49 #include "content/browser/web_contents/web_contents_view_aura.h"
51 #include "content/common/host_shared_bitmap_manager.h" 50 #include "content/common/host_shared_bitmap_manager.h"
52 #include "content/common/input/synthetic_web_input_event_builders.h" 51 #include "content/common/input/synthetic_web_input_event_builders.h"
53 #include "content/common/input_messages.h" 52 #include "content/common/input_messages.h"
54 #include "content/common/text_input_state.h" 53 #include "content/common/text_input_state.h"
55 #include "content/common/view_messages.h" 54 #include "content/common/view_messages.h"
56 #include "content/public/browser/render_widget_host_view.h" 55 #include "content/public/browser/render_widget_host_view.h"
57 #include "content/public/browser/web_contents_view_delegate.h" 56 #include "content/public/browser/web_contents_view_delegate.h"
58 #include "content/public/common/content_features.h"
59 #include "content/public/common/context_menu_params.h" 57 #include "content/public/common/context_menu_params.h"
60 #include "content/public/test/mock_render_process_host.h" 58 #include "content/public/test/mock_render_process_host.h"
61 #include "content/public/test/test_browser_context.h" 59 #include "content/public/test/test_browser_context.h"
62 #include "content/test/test_render_view_host.h" 60 #include "content/test/test_render_view_host.h"
63 #include "content/test/test_web_contents.h" 61 #include "content/test/test_web_contents.h"
64 #include "ipc/ipc_message.h" 62 #include "ipc/ipc_message.h"
65 #include "ipc/ipc_test_sink.h" 63 #include "ipc/ipc_test_sink.h"
66 #include "media/base/video_frame.h" 64 #include "media/base/video_frame.h"
67 #include "testing/gmock/include/gmock/gmock.h" 65 #include "testing/gmock/include/gmock/gmock.h"
68 #include "testing/gtest/include/gtest/gtest.h" 66 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 688
691 const blink::WebInputEvent* event = std::get<0>(params); 689 const blink::WebInputEvent* event = std::get<0>(params);
692 SendTouchEventACK(event->type(), ack_result, 690 SendTouchEventACK(event->type(), ack_result,
693 WebInputEventTraits::GetUniqueTouchEventId(*event)); 691 WebInputEventTraits::GetUniqueTouchEventId(*event));
694 } 692 }
695 693
696 const ui::MotionEventAura& pointer_state() { 694 const ui::MotionEventAura& pointer_state() {
697 return view_->pointer_state_for_test(); 695 return view_->pointer_state_for_test();
698 } 696 }
699 697
700 void EnableRafAlignedTouchInput() {
701 feature_list_.InitFromCommandLine(
702 features::kRafAlignedTouchInputEvents.name, "");
703 }
704
705 void DisableRafAlignedTouchInput() {
706 feature_list_.InitFromCommandLine(
707 "", features::kRafAlignedTouchInputEvents.name);
708 }
709
710 protected: 698 protected:
711 BrowserContext* browser_context() { return browser_context_.get(); } 699 BrowserContext* browser_context() { return browser_context_.get(); }
712 700
713 MockRenderWidgetHostDelegate* render_widget_host_delegate() const { 701 MockRenderWidgetHostDelegate* render_widget_host_delegate() const {
714 return delegates_.back().get(); 702 return delegates_.back().get();
715 } 703 }
716 704
717 // Sets the |view| active in TextInputManager with the given |type|. |type| 705 // Sets the |view| active in TextInputManager with the given |type|. |type|
718 // cannot be ui::TEXT_INPUT_TYPE_NONE. 706 // cannot be ui::TEXT_INPUT_TYPE_NONE.
719 // Must not be called in the destruction path of |view|. 707 // Must not be called in the destruction path of |view|.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 // destruction. 748 // destruction.
761 RenderWidgetHostImpl* parent_host_; 749 RenderWidgetHostImpl* parent_host_;
762 RenderWidgetHostViewAura* parent_view_; 750 RenderWidgetHostViewAura* parent_view_;
763 751
764 // Tests should set these to nullptr if they've already triggered their 752 // Tests should set these to nullptr if they've already triggered their
765 // destruction. 753 // destruction.
766 MockRenderWidgetHostImpl* widget_host_; 754 MockRenderWidgetHostImpl* widget_host_;
767 FakeRenderWidgetHostViewAura* view_; 755 FakeRenderWidgetHostViewAura* view_;
768 756
769 IPC::TestSink* sink_; 757 IPC::TestSink* sink_;
770 base::test::ScopedFeatureList feature_list_;
771 758
772 private: 759 private:
773 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest); 760 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAuraTest);
774 }; 761 };
775 762
776 class RenderWidgetHostViewAuraRafAlignedTouchEnabledTest
777 : public RenderWidgetHostViewAuraTest {
778 public:
779 void SetUp() override {
780 EnableRafAlignedTouchInput();
781 RenderWidgetHostViewAuraTest::SetUp();
782 }
783 };
784
785 class RenderWidgetHostViewAuraRafAlignedTouchDisabledTest
786 : public RenderWidgetHostViewAuraTest {
787 public:
788 void SetUp() override {
789 DisableRafAlignedTouchInput();
790 RenderWidgetHostViewAuraTest::SetUp();
791 }
792 };
793
794 void InstallDelegatedFrameHostClient( 763 void InstallDelegatedFrameHostClient(
795 RenderWidgetHostViewAura* render_widget_host_view, 764 RenderWidgetHostViewAura* render_widget_host_view,
796 std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) { 765 std::unique_ptr<DelegatedFrameHostClient> delegated_frame_host_client) {
797 RenderWidgetHostViewAuraTest::InstallDelegatedFrameHostClient( 766 RenderWidgetHostViewAuraTest::InstallDelegatedFrameHostClient(
798 render_widget_host_view, std::move(delegated_frame_host_client)); 767 render_widget_host_view, std::move(delegated_frame_host_client));
799 } 768 }
800 769
801 // Helper class to instantiate RenderWidgetHostViewGuest which is backed 770 // Helper class to instantiate RenderWidgetHostViewGuest which is backed
802 // by an aura platform view. 771 // by an aura platform view.
803 class RenderWidgetHostViewGuestAuraTest : public RenderWidgetHostViewAuraTest { 772 class RenderWidgetHostViewGuestAuraTest : public RenderWidgetHostViewAuraTest {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 void SetUp() override {} 811 void SetUp() override {}
843 812
844 protected: 813 protected:
845 void SetUpOverscrollEnvironmentWithDebounce(int debounce_interval_in_ms) { 814 void SetUpOverscrollEnvironmentWithDebounce(int debounce_interval_in_ms) {
846 SetUpOverscrollEnvironmentImpl(debounce_interval_in_ms); 815 SetUpOverscrollEnvironmentImpl(debounce_interval_in_ms);
847 } 816 }
848 817
849 void SetUpOverscrollEnvironment() { SetUpOverscrollEnvironmentImpl(0); } 818 void SetUpOverscrollEnvironment() { SetUpOverscrollEnvironmentImpl(0); }
850 819
851 void SetUpOverscrollEnvironmentImpl(int debounce_interval_in_ms) { 820 void SetUpOverscrollEnvironmentImpl(int debounce_interval_in_ms) {
852 EnableRafAlignedTouchInput();
853 ui::GestureConfiguration::GetInstance()->set_scroll_debounce_interval_in_ms( 821 ui::GestureConfiguration::GetInstance()->set_scroll_debounce_interval_in_ms(
854 debounce_interval_in_ms); 822 debounce_interval_in_ms);
855 823
856 RenderWidgetHostViewAuraTest::SetUp(); 824 RenderWidgetHostViewAuraTest::SetUp();
857 825
858 view_->SetOverscrollControllerEnabled(true); 826 view_->SetOverscrollControllerEnabled(true);
859 overscroll_delegate_.reset(new TestOverscrollDelegate(view_)); 827 overscroll_delegate_.reset(new TestOverscrollDelegate(view_));
860 view_->overscroll_controller()->set_delegate(overscroll_delegate_.get()); 828 view_->overscroll_controller()->set_delegate(overscroll_delegate_.get());
861 829
862 view_->InitAsChild(nullptr); 830 view_->InitAsChild(nullptr);
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
1380 if (sink_->message_count() == 2) { 1348 if (sink_->message_count() == 2) {
1381 // Verify mouse event happens after the finish composing text event. 1349 // Verify mouse event happens after the finish composing text event.
1382 EXPECT_EQ(InputMsg_ImeFinishComposingText::ID, 1350 EXPECT_EQ(InputMsg_ImeFinishComposingText::ID,
1383 sink_->GetMessageAt(0)->type()); 1351 sink_->GetMessageAt(0)->type());
1384 EXPECT_EQ(InputMsg_HandleInputEvent::ID, 1352 EXPECT_EQ(InputMsg_HandleInputEvent::ID,
1385 sink_->GetMessageAt(1)->type()); 1353 sink_->GetMessageAt(1)->type());
1386 } 1354 }
1387 } 1355 }
1388 1356
1389 // Checks that touch-event state is maintained correctly. 1357 // Checks that touch-event state is maintained correctly.
1390 TEST_F(RenderWidgetHostViewAuraRafAlignedTouchDisabledTest, TouchEventState) { 1358 TEST_F(RenderWidgetHostViewAuraTest, TouchEventState) {
1391 view_->InitAsChild(nullptr); 1359 view_->InitAsChild(nullptr);
1392 view_->Show(); 1360 view_->Show();
1393 GetSentMessageCountAndResetSink(); 1361 GetSentMessageCountAndResetSink();
1394 1362
1395 // Start with no touch-event handler in the renderer. 1363 // Start with no touch-event handler in the renderer.
1396 widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false)); 1364 widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false));
1397 1365
1398 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, 1366 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0,
1399 ui::EventTimeForNow()); 1367 ui::EventTimeForNow());
1400 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(20, 20), 0, 1368 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(20, 20), 0,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 EXPECT_EQ(ui::MotionEvent::ACTION_MOVE, pointer_state().GetAction()); 1429 EXPECT_EQ(ui::MotionEvent::ACTION_MOVE, pointer_state().GetAction());
1462 EXPECT_EQ(1U, pointer_state().GetPointerCount()); 1430 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1463 1431
1464 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(20, 20), 0, 1432 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(20, 20), 0,
1465 base::TimeTicks::Now()); 1433 base::TimeTicks::Now());
1466 view_->OnTouchEvent(&release2); 1434 view_->OnTouchEvent(&release2);
1467 EXPECT_TRUE(press.synchronous_handling_disabled()); 1435 EXPECT_TRUE(press.synchronous_handling_disabled());
1468 EXPECT_EQ(0U, pointer_state().GetPointerCount()); 1436 EXPECT_EQ(0U, pointer_state().GetPointerCount());
1469 } 1437 }
1470 1438
1471 // Checks that touch-event state is maintained correctly.
1472 TEST_F(RenderWidgetHostViewAuraRafAlignedTouchEnabledTest, TouchEventState) {
1473 view_->InitAsChild(nullptr);
1474 view_->Show();
1475 GetSentMessageCountAndResetSink();
1476
1477 // Start with no touch-event handler in the renderer.
1478 widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false));
1479
1480 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0,
1481 ui::EventTimeForNow());
1482 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(20, 20), 0,
1483 ui::EventTimeForNow());
1484 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(20, 20), 0,
1485 ui::EventTimeForNow());
1486
1487 // The touch events should get forwarded from the view, but they should not
1488 // reach the renderer.
1489 view_->OnTouchEvent(&press);
1490 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1491 EXPECT_TRUE(press.synchronous_handling_disabled());
1492 EXPECT_EQ(ui::MotionEvent::ACTION_DOWN, pointer_state().GetAction());
1493
1494 view_->OnTouchEvent(&move);
1495 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1496 EXPECT_TRUE(press.synchronous_handling_disabled());
1497 EXPECT_EQ(ui::MotionEvent::ACTION_MOVE, pointer_state().GetAction());
1498 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1499
1500 view_->OnTouchEvent(&release);
1501 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1502 EXPECT_TRUE(press.synchronous_handling_disabled());
1503 EXPECT_EQ(0U, pointer_state().GetPointerCount());
1504
1505 // Now install some touch-event handlers and do the same steps. The touch
1506 // events should now be consumed. However, the touch-event state should be
1507 // updated as before.
1508 widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, true));
1509
1510 view_->OnTouchEvent(&press);
1511 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1512 EXPECT_TRUE(press.synchronous_handling_disabled());
1513 EXPECT_EQ(ui::MotionEvent::ACTION_DOWN, pointer_state().GetAction());
1514 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1515
1516 view_->OnTouchEvent(&move);
1517 EXPECT_TRUE(move.synchronous_handling_disabled());
1518 EXPECT_EQ(ui::MotionEvent::ACTION_MOVE, pointer_state().GetAction());
1519 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1520 view_->OnTouchEvent(&release);
1521 EXPECT_TRUE(release.synchronous_handling_disabled());
1522 EXPECT_EQ(0U, pointer_state().GetPointerCount());
1523
1524 // Now start a touch event, and remove the event-handlers before the release.
1525 view_->OnTouchEvent(&press);
1526 EXPECT_TRUE(press.synchronous_handling_disabled());
1527 EXPECT_EQ(ui::MotionEvent::ACTION_DOWN, pointer_state().GetAction());
1528 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1529 EXPECT_EQ(3U, GetSentMessageCountAndResetSink());
1530
1531 widget_host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false));
1532
1533 // All outstanding events should have already been sent but no new events
1534 // should get sent.
1535 InputEventAck ack(
1536 InputEventAckSource::COMPOSITOR_THREAD, blink::WebInputEvent::TouchStart,
1537 INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, press.unique_event_id());
1538 widget_host_->OnMessageReceived(InputHostMsg_HandleInputEvent_ACK(0, ack));
1539 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1540
1541 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(20, 20), 0,
1542 base::TimeTicks::Now());
1543 view_->OnTouchEvent(&move2);
1544 EXPECT_TRUE(press.synchronous_handling_disabled());
1545 EXPECT_EQ(ui::MotionEvent::ACTION_MOVE, pointer_state().GetAction());
1546 EXPECT_EQ(1U, pointer_state().GetPointerCount());
1547
1548 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(20, 20), 0,
1549 base::TimeTicks::Now());
1550 view_->OnTouchEvent(&release2);
1551 EXPECT_TRUE(press.synchronous_handling_disabled());
1552 EXPECT_EQ(0U, pointer_state().GetPointerCount());
1553 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1554 }
1555
1556 // Checks that touch-event state is maintained correctly for multiple touch 1439 // Checks that touch-event state is maintained correctly for multiple touch
1557 // points. 1440 // points.
1558 TEST_F(RenderWidgetHostViewAuraTest, MultiTouchPointsStates) { 1441 TEST_F(RenderWidgetHostViewAuraTest, MultiTouchPointsStates) {
1559 view_->InitAsFullscreen(parent_view_); 1442 view_->InitAsFullscreen(parent_view_);
1560 view_->Show(); 1443 view_->Show();
1561 view_->UseFakeDispatcher(); 1444 view_->UseFakeDispatcher();
1562 GetSentMessageCountAndResetSink(); 1445 GetSentMessageCountAndResetSink();
1563 1446
1564 ui::TouchEvent press0(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, 1447 ui::TouchEvent press0(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0,
1565 ui::EventTimeForNow()); 1448 ui::EventTimeForNow());
(...skipping 1850 matching lines...) Expand 10 before | Expand all | Expand 10 after
3416 // initiate the navigation gesture. 3299 // initiate the navigation gesture.
3417 SimulateGestureScrollUpdateEvent(55, -5, 0); 3300 SimulateGestureScrollUpdateEvent(55, -5, 0);
3418 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3301 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3419 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3302 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3420 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3303 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
3421 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3304 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
3422 EXPECT_EQ(55.f, overscroll_delta_x()); 3305 EXPECT_EQ(55.f, overscroll_delta_x());
3423 EXPECT_EQ(-5.f, overscroll_delta_y()); 3306 EXPECT_EQ(-5.f, overscroll_delta_y());
3424 EXPECT_EQ(5.f, overscroll_delegate()->delta_x()); 3307 EXPECT_EQ(5.f, overscroll_delegate()->delta_x());
3425 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y()); 3308 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y());
3426 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3309 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3427 3310
3428 // Send another gesture update event. This event should be consumed by the 3311 // Send another gesture update event. This event should be consumed by the
3429 // controller, and not be forwarded to the renderer. The gesture-event filter 3312 // controller, and not be forwarded to the renderer. The gesture-event filter
3430 // should not also receive this event. 3313 // should not also receive this event.
3431 SimulateGestureScrollUpdateEvent(10, -5, 0); 3314 SimulateGestureScrollUpdateEvent(10, -5, 0);
3432 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3315 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
3433 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3316 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
3434 EXPECT_EQ(65.f, overscroll_delta_x()); 3317 EXPECT_EQ(65.f, overscroll_delta_x());
3435 EXPECT_EQ(-10.f, overscroll_delta_y()); 3318 EXPECT_EQ(-10.f, overscroll_delta_y());
3436 EXPECT_EQ(15.f, overscroll_delegate()->delta_x()); 3319 EXPECT_EQ(15.f, overscroll_delegate()->delta_x());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
3482 GestureScrollDebounceOverscrolls) { 3365 GestureScrollDebounceOverscrolls) {
3483 SetUpOverscrollEnvironmentWithDebounce(100); 3366 SetUpOverscrollEnvironmentWithDebounce(100);
3484 3367
3485 // Start scrolling. Receive ACK as it being processed. 3368 // Start scrolling. Receive ACK as it being processed.
3486 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3369 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3487 blink::WebGestureDeviceTouchscreen); 3370 blink::WebGestureDeviceTouchscreen);
3488 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3371 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3489 3372
3490 // Send update events. 3373 // Send update events.
3491 SimulateGestureScrollUpdateEvent(25, 0, 0); 3374 SimulateGestureScrollUpdateEvent(25, 0, 0);
3492 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3375 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3493 3376
3494 // Quickly end and restart the scroll gesture. These two events should get 3377 // Quickly end and restart the scroll gesture. These two events should get
3495 // discarded. 3378 // discarded.
3496 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 3379 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
3497 blink::WebGestureDeviceTouchscreen); 3380 blink::WebGestureDeviceTouchscreen);
3498 EXPECT_EQ(0U, sink_->message_count()); 3381 EXPECT_EQ(0U, sink_->message_count());
3499 3382
3500 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3383 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3501 blink::WebGestureDeviceTouchscreen); 3384 blink::WebGestureDeviceTouchscreen);
3502 EXPECT_EQ(0U, sink_->message_count()); 3385 EXPECT_EQ(0U, sink_->message_count());
3503 3386
3504 // Send another update event. This should be sent right away. 3387 // Send another update event. This should get into the queue.
3505 SimulateGestureScrollUpdateEvent(30, 0, 0); 3388 SimulateGestureScrollUpdateEvent(30, 0, 0);
3506 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3389 EXPECT_EQ(0U, sink_->message_count());
3507 3390
3508 // Receive an ACK for the first scroll-update event as not being processed. 3391 // Receive an ACK for the first scroll-update event as not being processed.
3509 // This will contribute to the overscroll gesture, but not enough for the 3392 // This will contribute to the overscroll gesture, but not enough for the
3510 // overscroll controller to start consuming gesture events. This also cause 3393 // overscroll controller to start consuming gesture events. This also cause
3511 // the queued gesture event to be forwarded to the renderer. 3394 // the queued gesture event to be forwarded to the renderer.
3512 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3395 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3513 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3396 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3514 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3397 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3515 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3398 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3516 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3399 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
(...skipping 22 matching lines...) Expand all
3539 GestureScrollDebounceTimerOverscroll) { 3422 GestureScrollDebounceTimerOverscroll) {
3540 SetUpOverscrollEnvironmentWithDebounce(10); 3423 SetUpOverscrollEnvironmentWithDebounce(10);
3541 3424
3542 // Start scrolling. Receive ACK as it being processed. 3425 // Start scrolling. Receive ACK as it being processed.
3543 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3426 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3544 blink::WebGestureDeviceTouchscreen); 3427 blink::WebGestureDeviceTouchscreen);
3545 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3428 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3546 3429
3547 // Send update events. 3430 // Send update events.
3548 SimulateGestureScrollUpdateEvent(55, 0, 0); 3431 SimulateGestureScrollUpdateEvent(55, 0, 0);
3549 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3432 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3550 3433
3551 // Send an end event. This should get in the debounce queue. 3434 // Send an end event. This should get in the debounce queue.
3552 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 3435 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
3553 blink::WebGestureDeviceTouchscreen); 3436 blink::WebGestureDeviceTouchscreen);
3554 EXPECT_EQ(0U, sink_->message_count()); 3437 EXPECT_EQ(0U, sink_->message_count());
3555 3438
3556 // Receive ACK for the scroll-update event. 3439 // Receive ACK for the scroll-update event.
3557 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3440 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3558 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3441 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3559 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3442 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3600 3483
3601 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3484 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3602 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3485 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3603 3486
3604 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3487 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3605 blink::WebGestureDeviceTouchscreen); 3488 blink::WebGestureDeviceTouchscreen);
3606 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3489 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3607 SimulateGestureScrollUpdateEvent(20, 0, 0); 3490 SimulateGestureScrollUpdateEvent(20, 0, 0);
3608 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3491 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3609 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3492 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3610 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3493 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3611 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3494 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3612 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3495 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3613 3496
3614 // Another touch move event should reach the renderer since overscroll hasn't 3497 // Another touch move event should reach the renderer since overscroll hasn't
3615 // started yet. Note that touch events sent during the scroll period may 3498 // started yet. Note that touch events sent during the scroll period may
3616 // not require an ack (having been marked uncancelable). 3499 // not require an ack (having been marked uncancelable).
3617 MoveTouchPoint(0, 65, 10); 3500 MoveTouchPoint(0, 65, 10);
3618 SendTouchEvent(); 3501 SendTouchEvent();
3619 AckLastSentInputEventIfNecessary(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3502 AckLastSentInputEventIfNecessary(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3620 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3503 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
3697 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3580 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3698 blink::WebGestureDeviceTouchscreen); 3581 blink::WebGestureDeviceTouchscreen);
3699 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3582 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3700 // The scroll begin event will have received a synthetic ack from the input 3583 // The scroll begin event will have received a synthetic ack from the input
3701 // router. 3584 // router.
3702 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3585 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3703 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3586 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3704 3587
3705 // Send update events. 3588 // Send update events.
3706 SimulateGestureScrollUpdateEvent(55, -5, 0); 3589 SimulateGestureScrollUpdateEvent(55, -5, 0);
3707 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3590 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3708 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3591 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3709 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3592 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3710 3593
3711 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3594 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3712 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3595 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3713 EXPECT_EQ(0U, sink_->message_count()); 3596 EXPECT_EQ(0U, sink_->message_count());
3714 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3597 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
3715 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3598 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
3716 EXPECT_EQ(55.f, overscroll_delta_x()); 3599 EXPECT_EQ(55.f, overscroll_delta_x());
3717 EXPECT_EQ(5.f, overscroll_delegate()->delta_x()); 3600 EXPECT_EQ(5.f, overscroll_delegate()->delta_x());
(...skipping 14 matching lines...) Expand all
3732 3615
3733 // Start scrolling. Receive ACK as it being processed. 3616 // Start scrolling. Receive ACK as it being processed.
3734 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3617 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3735 blink::WebGestureDeviceTouchscreen); 3618 blink::WebGestureDeviceTouchscreen);
3736 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3619 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3737 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3620 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3738 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3621 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3739 3622
3740 // Send update events. 3623 // Send update events.
3741 SimulateGestureScrollUpdateEvent(235, -5, 0); 3624 SimulateGestureScrollUpdateEvent(235, -5, 0);
3742 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3625 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3743 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3626 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
3744 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3627 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
3745 3628
3746 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3629 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3747 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3630 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3748 EXPECT_EQ(0U, sink_->message_count()); 3631 EXPECT_EQ(0U, sink_->message_count());
3749 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3632 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
3750 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3633 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
3751 EXPECT_EQ(235.f, overscroll_delta_x()); 3634 EXPECT_EQ(235.f, overscroll_delta_x());
3752 EXPECT_EQ(185.f, overscroll_delegate()->delta_x()); 3635 EXPECT_EQ(185.f, overscroll_delegate()->delta_x());
(...skipping 16 matching lines...) Expand all
3769 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) { 3652 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) {
3770 SetUpOverscrollEnvironmentWithDebounce(100); 3653 SetUpOverscrollEnvironmentWithDebounce(100);
3771 3654
3772 // Start scrolling. Receive ACK as it being processed. 3655 // Start scrolling. Receive ACK as it being processed.
3773 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3656 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
3774 blink::WebGestureDeviceTouchscreen); 3657 blink::WebGestureDeviceTouchscreen);
3775 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3658 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3776 3659
3777 // Send update events and receive ack as not consumed. 3660 // Send update events and receive ack as not consumed.
3778 SimulateGestureScrollUpdateEvent(125, -5, 0); 3661 SimulateGestureScrollUpdateEvent(125, -5, 0);
3779 EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); 3662 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
3780 3663
3781 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3664 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
3782 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3665 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3783 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3666 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
3784 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3667 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
3785 EXPECT_EQ(0U, sink_->message_count()); 3668 EXPECT_EQ(0U, sink_->message_count());
3786 3669
3787 // Send another update event, but in the reverse direction. The overscroll 3670 // Send another update event, but in the reverse direction. The overscroll
3788 // controller will not consume the event, because it is not triggering 3671 // controller will not consume the event, because it is not triggering
3789 // gesture-nav. 3672 // gesture-nav.
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
4009 3892
4010 // Start an overscroll with gesture scroll. In the middle of the scroll, blur 3893 // Start an overscroll with gesture scroll. In the middle of the scroll, blur
4011 // the host. 3894 // the host.
4012 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3895 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
4013 blink::WebGestureDeviceTouchscreen); 3896 blink::WebGestureDeviceTouchscreen);
4014 SimulateGestureScrollUpdateEvent(300, -5, 0); 3897 SimulateGestureScrollUpdateEvent(300, -5, 0);
4015 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3898 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
4016 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3899 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
4017 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3900 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
4018 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3901 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
4019 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); 3902 EXPECT_EQ(2U, GetSentMessageCountAndResetSink());
4020 3903
4021 view_->OnWindowFocused(nullptr, view_->GetNativeView()); 3904 view_->OnWindowFocused(nullptr, view_->GetNativeView());
4022 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); 3905 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode());
4023 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3906 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
4024 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); 3907 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode());
4025 EXPECT_EQ(0.f, overscroll_delegate()->delta_x()); 3908 EXPECT_EQ(0.f, overscroll_delegate()->delta_x());
4026 EXPECT_EQ(0.f, overscroll_delegate()->delta_y()); 3909 EXPECT_EQ(0.f, overscroll_delegate()->delta_y());
4027 sink_->ClearMessages(); 3910 sink_->ClearMessages();
4028 3911
4029 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 3912 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
4030 blink::WebGestureDeviceTouchscreen); 3913 blink::WebGestureDeviceTouchscreen);
4031 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 3914 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
4032 3915
4033 // Start a scroll gesture again. This should correctly start the overscroll 3916 // Start a scroll gesture again. This should correctly start the overscroll
4034 // after the threshold. 3917 // after the threshold.
4035 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 3918 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
4036 blink::WebGestureDeviceTouchscreen); 3919 blink::WebGestureDeviceTouchscreen);
4037 SimulateGestureScrollUpdateEvent(300, -5, 0); 3920 SimulateGestureScrollUpdateEvent(300, -5, 0);
4038 SendInputEventACK(WebInputEvent::GestureScrollUpdate, 3921 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
4039 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3922 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
4040 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); 3923 EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode());
4041 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); 3924 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode());
4042 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); 3925 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode());
4043 3926
4044 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 3927 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
4045 blink::WebGestureDeviceTouchscreen); 3928 blink::WebGestureDeviceTouchscreen);
4046 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); 3929 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode());
4047 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); 3930 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode());
4048 EXPECT_EQ(4U, sink_->message_count()); 3931 EXPECT_EQ(3U, sink_->message_count());
4049 } 3932 }
4050 3933
4051 // Tests that when view initiated shutdown happens (i.e. RWHView is deleted 3934 // Tests that when view initiated shutdown happens (i.e. RWHView is deleted
4052 // before RWH), we clean up properly and don't leak the RWHVGuest. 3935 // before RWH), we clean up properly and don't leak the RWHVGuest.
4053 TEST_F(RenderWidgetHostViewGuestAuraTest, GuestViewDoesNotLeak) { 3936 TEST_F(RenderWidgetHostViewGuestAuraTest, GuestViewDoesNotLeak) {
4054 view_->InitAsChild(nullptr); 3937 view_->InitAsChild(nullptr);
4055 TearDownEnvironment(); 3938 TearDownEnvironment();
4056 ASSERT_FALSE(guest_view_weak_.get()); 3939 ASSERT_FALSE(guest_view_weak_.get());
4057 } 3940 }
4058 3941
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
4833 // There is no composition in the beginning. 4716 // There is no composition in the beginning.
4834 EXPECT_FALSE(has_composition_text()); 4717 EXPECT_FALSE(has_composition_text());
4835 SetHasCompositionTextToTrue(); 4718 SetHasCompositionTextToTrue();
4836 view->ImeCancelComposition(); 4719 view->ImeCancelComposition();
4837 // The composition must have been canceled. 4720 // The composition must have been canceled.
4838 EXPECT_FALSE(has_composition_text()); 4721 EXPECT_FALSE(has_composition_text());
4839 } 4722 }
4840 } 4723 }
4841 4724
4842 } // namespace content 4725 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_unittest.cc ('k') | content/renderer/input/input_event_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698