Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 10 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 | 41 |
| 42 #if defined(OS_WIN) || defined(USE_AURA) | 42 #if defined(OS_WIN) || defined(USE_AURA) |
| 43 #include "content/browser/renderer_host/ui_events_helper.h" | 43 #include "content/browser/renderer_host/ui_events_helper.h" |
| 44 #include "ui/events/event.h" | 44 #include "ui/events/event.h" |
| 45 #endif | 45 #endif |
| 46 | 46 |
| 47 using base::TimeDelta; | 47 using base::TimeDelta; |
| 48 using blink::WebGestureEvent; | 48 using blink::WebGestureEvent; |
| 49 using blink::WebInputEvent; | 49 using blink::WebInputEvent; |
| 50 using blink::WebKeyboardEvent; | 50 using blink::WebKeyboardEvent; |
| 51 using blink::WebMouseEvent; | |
| 51 using blink::WebMouseWheelEvent; | 52 using blink::WebMouseWheelEvent; |
| 52 using blink::WebTouchEvent; | 53 using blink::WebTouchEvent; |
| 53 using blink::WebTouchPoint; | 54 using blink::WebTouchPoint; |
| 54 | 55 |
| 55 namespace content { | 56 namespace content { |
| 56 | 57 |
| 57 // TestOverscrollDelegate ------------------------------------------------------ | 58 // TestOverscrollDelegate ------------------------------------------------------ |
| 58 | 59 |
| 59 class TestOverscrollDelegate : public OverscrollControllerDelegate { | 60 class TestOverscrollDelegate : public OverscrollControllerDelegate { |
| 60 public: | 61 public: |
| (...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 636 | 637 |
| 637 void SendInputEventACK(WebInputEvent::Type type, | 638 void SendInputEventACK(WebInputEvent::Type type, |
| 638 InputEventAckState ack_result) { | 639 InputEventAckState ack_result) { |
| 639 scoped_ptr<IPC::Message> response( | 640 scoped_ptr<IPC::Message> response( |
| 640 new InputHostMsg_HandleInputEvent_ACK(0, type, ack_result, | 641 new InputHostMsg_HandleInputEvent_ACK(0, type, ack_result, |
| 641 ui::LatencyInfo())); | 642 ui::LatencyInfo())); |
| 642 host_->OnMessageReceived(*response); | 643 host_->OnMessageReceived(*response); |
| 643 } | 644 } |
| 644 | 645 |
| 645 void SimulateKeyboardEvent(WebInputEvent::Type type) { | 646 void SimulateKeyboardEvent(WebInputEvent::Type type) { |
| 646 WebKeyboardEvent event = SyntheticWebKeyboardEventBuilder::Build(type); | 647 SimulateKeyboardEvent(type, 0); |
| 647 NativeWebKeyboardEvent native_event; | 648 } |
| 648 memcpy(&native_event, &event, sizeof(event)); | 649 |
| 650 void SimulateKeyboardEvent(WebInputEvent::Type type, int modifiers) { | |
| 651 WebKeyboardEvent event = SyntheticWebKeyboardEventBuilder::Build(type); | |
| 652 event.modifiers = modifiers; | |
| 653 NativeWebKeyboardEvent native_event; | |
| 654 memcpy(&native_event, &event, sizeof(event)); | |
| 649 host_->ForwardKeyboardEvent(native_event); | 655 host_->ForwardKeyboardEvent(native_event); |
| 650 } | 656 } |
| 651 | 657 |
| 652 void SimulateMouseEvent(WebInputEvent::Type type) { | 658 void SimulateMouseEvent(WebInputEvent::Type type) { |
| 653 host_->ForwardMouseEvent(SyntheticWebMouseEventBuilder::Build(type)); | 659 host_->ForwardMouseEvent(SyntheticWebMouseEventBuilder::Build(type)); |
| 654 } | 660 } |
| 655 | 661 |
| 656 void SimulateMouseEventWithLatencyInfo(WebInputEvent::Type type, | 662 void SimulateMouseEventWithLatencyInfo(WebInputEvent::Type type, |
| 657 const ui::LatencyInfo& ui_latency) { | 663 const ui::LatencyInfo& ui_latency) { |
| 658 host_->ForwardMouseEventWithLatencyInfo( | 664 host_->ForwardMouseEventWithLatencyInfo( |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 669 float dY, | 675 float dY, |
| 670 int modifiers, | 676 int modifiers, |
| 671 bool precise, | 677 bool precise, |
| 672 const ui::LatencyInfo& ui_latency) { | 678 const ui::LatencyInfo& ui_latency) { |
| 673 host_->ForwardWheelEventWithLatencyInfo( | 679 host_->ForwardWheelEventWithLatencyInfo( |
| 674 SyntheticWebMouseWheelEventBuilder::Build(dX, dY, modifiers, precise), | 680 SyntheticWebMouseWheelEventBuilder::Build(dX, dY, modifiers, precise), |
| 675 ui_latency); | 681 ui_latency); |
| 676 } | 682 } |
| 677 | 683 |
| 678 void SimulateMouseMove(int x, int y, int modifiers) { | 684 void SimulateMouseMove(int x, int y, int modifiers) { |
| 679 host_->ForwardMouseEvent( | 685 SimulateMouseEvent(WebInputEvent::MouseMove, x, y, modifiers, false); |
| 680 SyntheticWebMouseEventBuilder::Build(WebInputEvent::MouseMove, | 686 } |
| 681 x, | 687 |
| 682 y, | 688 void SimulateMouseEvent( |
| 683 modifiers)); | 689 WebInputEvent::Type type, int x, int y, int modifiers, bool pressed) { |
| 690 WebMouseEvent event = | |
| 691 SyntheticWebMouseEventBuilder::Build(type, x, y, modifiers); | |
| 692 if (pressed) | |
| 693 event.button = WebMouseEvent::ButtonLeft; | |
| 694 event.timeStampSeconds = base::Time::Now().ToDoubleT(); | |
| 695 host_->ForwardMouseEvent(event); | |
| 684 } | 696 } |
| 685 | 697 |
| 686 void SimulateWheelEventWithPhase(WebMouseWheelEvent::Phase phase) { | 698 void SimulateWheelEventWithPhase(WebMouseWheelEvent::Phase phase) { |
| 687 host_->ForwardWheelEvent(SyntheticWebMouseWheelEventBuilder::Build(phase)); | 699 host_->ForwardWheelEvent(SyntheticWebMouseWheelEventBuilder::Build(phase)); |
| 688 } | 700 } |
| 689 | 701 |
| 690 // Inject provided synthetic WebGestureEvent instance. | 702 // Inject provided synthetic WebGestureEvent instance. |
| 691 void SimulateGestureEventCore(const WebGestureEvent& gesture_event) { | 703 void SimulateGestureEventCore(const WebGestureEvent& gesture_event) { |
| 692 host_->ForwardGestureEvent(gesture_event); | 704 host_->ForwardGestureEvent(gesture_event); |
| 693 } | 705 } |
| (...skipping 1677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2371 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_delegate()->current_mode()); | 2383 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_delegate()->current_mode()); |
| 2372 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->completed_mode()); | 2384 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->completed_mode()); |
| 2373 | 2385 |
| 2374 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, | 2386 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, |
| 2375 WebGestureEvent::Touchscreen); | 2387 WebGestureEvent::Touchscreen); |
| 2376 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->current_mode()); | 2388 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->current_mode()); |
| 2377 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_delegate()->completed_mode()); | 2389 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_delegate()->completed_mode()); |
| 2378 process_->sink().ClearMessages(); | 2390 process_->sink().ClearMessages(); |
| 2379 } | 2391 } |
| 2380 | 2392 |
| 2393 std::string GetInputMessageTypes(RenderWidgetHostProcess* process) { | |
| 2394 const WebInputEvent* event = NULL; | |
| 2395 ui::LatencyInfo latency_info; | |
| 2396 bool is_keyboard_shortcut; | |
| 2397 std::string result; | |
| 2398 for (size_t i = 0; i < process->sink().message_count(); ++i) { | |
| 2399 const IPC::Message *message = process->sink().GetMessageAt(i); | |
| 2400 EXPECT_EQ(InputMsg_HandleInputEvent::ID, message->type()); | |
| 2401 EXPECT_TRUE(InputMsg_HandleInputEvent::Read( | |
| 2402 message, &event, &latency_info, &is_keyboard_shortcut)); | |
| 2403 if (i != 0) | |
| 2404 result += " "; | |
| 2405 result += WebInputEventTraits::GetName(event->type); | |
| 2406 } | |
| 2407 process->sink().ClearMessages(); | |
| 2408 return result; | |
| 2409 } | |
| 2410 | |
| 2411 TEST_F(RenderWidgetHostTest, TouchEmulator) { | |
| 2412 host_->DisableGestureDebounce(); | |
|
jdduke (slow)
2014/04/08 19:14:11
Nice.
| |
| 2413 host_->OnMessageReceived(ViewHostMsg_SetTouchEventEmulationEnabled(0, true)); | |
| 2414 process_->sink().ClearMessages(); | |
| 2415 view_->set_bounds(gfx::Rect(0, 0, 400, 200)); | |
| 2416 view_->Show(); | |
| 2417 | |
| 2418 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 10, 0, false); | |
| 2419 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2420 | |
| 2421 // Mouse press becomes touch start which in turn becomes tap. | |
| 2422 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); | |
| 2423 EXPECT_EQ("TouchStart", GetInputMessageTypes(process_)); | |
| 2424 SendInputEventACK(WebInputEvent::TouchStart, | |
| 2425 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2426 EXPECT_EQ("GestureTapDown", GetInputMessageTypes(process_)); | |
| 2427 SendInputEventACK(WebInputEvent::GestureTapDown, | |
| 2428 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2429 | |
| 2430 // Mouse drag generates touch move, cancels tap and starts scroll. | |
| 2431 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 30, 0, true); | |
| 2432 EXPECT_EQ("TouchMove", GetInputMessageTypes(process_)); | |
| 2433 SendInputEventACK(WebInputEvent::TouchMove, | |
| 2434 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2435 EXPECT_EQ("GestureTapCancel GestureScrollBegin GestureScrollUpdate", | |
| 2436 GetInputMessageTypes(process_)); | |
| 2437 SendInputEventACK(WebInputEvent::GestureTapCancel, | |
| 2438 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2439 SendInputEventACK(WebInputEvent::GestureScrollBegin, | |
| 2440 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2441 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
| 2442 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2443 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2444 | |
| 2445 // Mouse drag with shift becomes pinch. | |
| 2446 SimulateMouseEvent( | |
| 2447 WebInputEvent::MouseMove, 10, 40, WebInputEvent::ShiftKey, true); | |
| 2448 EXPECT_EQ("GesturePinchBegin", | |
| 2449 GetInputMessageTypes(process_)); | |
| 2450 SendInputEventACK(WebInputEvent::GesturePinchBegin, | |
| 2451 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2452 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2453 | |
| 2454 SimulateMouseEvent( | |
| 2455 WebInputEvent::MouseMove, 10, 50, WebInputEvent::ShiftKey, true); | |
| 2456 EXPECT_EQ("GesturePinchUpdate", | |
| 2457 GetInputMessageTypes(process_)); | |
| 2458 SendInputEventACK(WebInputEvent::GesturePinchUpdate, | |
| 2459 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2460 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2461 | |
| 2462 // Mouse drag without shift becomes scroll again. | |
| 2463 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 60, 0, true); | |
| 2464 EXPECT_EQ("GesturePinchEnd GestureScrollUpdate", | |
| 2465 GetInputMessageTypes(process_)); | |
| 2466 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
| 2467 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2468 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2469 | |
| 2470 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 70, 0, true); | |
| 2471 EXPECT_EQ("GestureScrollUpdate", | |
| 2472 GetInputMessageTypes(process_)); | |
| 2473 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
| 2474 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2475 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2476 | |
| 2477 SimulateMouseEvent(WebInputEvent::MouseUp, 10, 70, 0, true); | |
| 2478 EXPECT_EQ("TouchEnd", GetInputMessageTypes(process_)); | |
| 2479 SendInputEventACK(WebInputEvent::TouchEnd, | |
| 2480 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2481 EXPECT_EQ("GestureScrollEnd", GetInputMessageTypes(process_)); | |
| 2482 SendInputEventACK(WebInputEvent::GestureScrollEnd, | |
| 2483 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2484 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2485 | |
| 2486 // Mouse move does nothing. | |
| 2487 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 80, 0, false); | |
| 2488 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2489 | |
| 2490 // Another mouse down continues scroll. | |
| 2491 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 80, 0, true); | |
| 2492 EXPECT_EQ("TouchStart", GetInputMessageTypes(process_)); | |
| 2493 SendInputEventACK(WebInputEvent::TouchStart, | |
| 2494 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2495 EXPECT_EQ("GestureTapDown", GetInputMessageTypes(process_)); | |
| 2496 SendInputEventACK(WebInputEvent::GestureTapDown, | |
| 2497 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2498 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2499 | |
| 2500 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 100, 0, true); | |
| 2501 EXPECT_EQ("TouchMove", GetInputMessageTypes(process_)); | |
| 2502 SendInputEventACK(WebInputEvent::TouchMove, | |
| 2503 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2504 EXPECT_EQ("GestureTapCancel GestureScrollBegin GestureScrollUpdate", | |
| 2505 GetInputMessageTypes(process_)); | |
| 2506 SendInputEventACK(WebInputEvent::GestureTapCancel, | |
| 2507 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2508 SendInputEventACK(WebInputEvent::GestureScrollBegin, | |
| 2509 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2510 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
| 2511 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2512 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2513 | |
| 2514 // Another pinch. | |
| 2515 SimulateMouseEvent( | |
| 2516 WebInputEvent::MouseMove, 10, 110, WebInputEvent::ShiftKey, true); | |
| 2517 EXPECT_EQ("GesturePinchBegin", | |
| 2518 GetInputMessageTypes(process_)); | |
| 2519 SendInputEventACK(WebInputEvent::GesturePinchBegin, | |
| 2520 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2521 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2522 | |
| 2523 SimulateMouseEvent( | |
| 2524 WebInputEvent::MouseMove, 10, 120, WebInputEvent::ShiftKey, true); | |
| 2525 EXPECT_EQ("GesturePinchUpdate", | |
| 2526 GetInputMessageTypes(process_)); | |
| 2527 SendInputEventACK(WebInputEvent::GesturePinchUpdate, | |
| 2528 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2529 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2530 | |
| 2531 // Turn off emulation. | |
| 2532 host_->OnMessageReceived(ViewHostMsg_SetTouchEventEmulationEnabled(0, false)); | |
| 2533 EXPECT_EQ("TouchCancel GesturePinchEnd GestureScrollEnd", | |
| 2534 GetInputMessageTypes(process_)); | |
| 2535 SendInputEventACK(WebInputEvent::TouchCancel, | |
| 2536 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2537 SendInputEventACK(WebInputEvent::GesturePinchEnd, | |
| 2538 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2539 SendInputEventACK(WebInputEvent::GestureScrollEnd, | |
| 2540 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2541 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2542 | |
| 2543 // Mouse event should pass untouched. | |
| 2544 SimulateMouseEvent( | |
| 2545 WebInputEvent::MouseMove, 10, 10, WebInputEvent::ShiftKey, true); | |
| 2546 EXPECT_EQ("MouseMove", GetInputMessageTypes(process_)); | |
| 2547 SendInputEventACK(WebInputEvent::MouseMove, | |
| 2548 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2549 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2550 | |
| 2551 // Turn on emulation. | |
| 2552 host_->OnMessageReceived(ViewHostMsg_SetTouchEventEmulationEnabled(0, true)); | |
| 2553 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2554 | |
| 2555 // Another touch. | |
| 2556 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); | |
| 2557 EXPECT_EQ("TouchStart", GetInputMessageTypes(process_)); | |
| 2558 SendInputEventACK(WebInputEvent::TouchStart, | |
| 2559 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2560 EXPECT_EQ("GestureTapDown", GetInputMessageTypes(process_)); | |
| 2561 SendInputEventACK(WebInputEvent::GestureTapDown, | |
| 2562 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2563 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2564 | |
| 2565 // Now move mouse, and disable emulation before ack. | |
| 2566 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 30, 0, true); | |
| 2567 EXPECT_EQ("TouchMove", GetInputMessageTypes(process_)); | |
| 2568 host_->OnMessageReceived(ViewHostMsg_SetTouchEventEmulationEnabled(0, false)); | |
| 2569 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2570 | |
| 2571 SendInputEventACK(WebInputEvent::TouchMove, | |
| 2572 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2573 EXPECT_EQ( | |
| 2574 "GestureTapCancel GestureScrollBegin GestureScrollUpdate TouchCancel", | |
| 2575 GetInputMessageTypes(process_)); | |
| 2576 SendInputEventACK(WebInputEvent::GestureTapCancel, | |
| 2577 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2578 SendInputEventACK(WebInputEvent::GestureScrollBegin, | |
| 2579 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2580 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | |
| 2581 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2582 SendInputEventACK(WebInputEvent::TouchCancel, | |
| 2583 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | |
| 2584 EXPECT_EQ("GestureScrollEnd", GetInputMessageTypes(process_)); | |
| 2585 SendInputEventACK(WebInputEvent::GestureScrollEnd, | |
| 2586 INPUT_EVENT_ACK_STATE_CONSUMED); | |
| 2587 EXPECT_EQ(0U, process_->sink().message_count()); | |
| 2588 } | |
| 2589 | |
| 2381 #define TEST_InputRouterRoutes_NOARGS(INPUTMSG) \ | 2590 #define TEST_InputRouterRoutes_NOARGS(INPUTMSG) \ |
| 2382 TEST_F(RenderWidgetHostTest, InputRouterRoutes##INPUTMSG) { \ | 2591 TEST_F(RenderWidgetHostTest, InputRouterRoutes##INPUTMSG) { \ |
| 2383 host_->SetupForInputRouterTest(); \ | 2592 host_->SetupForInputRouterTest(); \ |
| 2384 host_->INPUTMSG(); \ | 2593 host_->INPUTMSG(); \ |
| 2385 EXPECT_TRUE(host_->mock_input_router()->send_event_called_); \ | 2594 EXPECT_TRUE(host_->mock_input_router()->send_event_called_); \ |
| 2386 } | 2595 } |
| 2387 | 2596 |
| 2388 TEST_InputRouterRoutes_NOARGS(Focus); | 2597 TEST_InputRouterRoutes_NOARGS(Focus); |
| 2389 TEST_InputRouterRoutes_NOARGS(Blur); | 2598 TEST_InputRouterRoutes_NOARGS(Blur); |
| 2390 TEST_InputRouterRoutes_NOARGS(LostCapture); | 2599 TEST_InputRouterRoutes_NOARGS(LostCapture); |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2611 | 2820 |
| 2612 // Tests RWHI::ForwardTouchEventWithLatencyInfo(). | 2821 // Tests RWHI::ForwardTouchEventWithLatencyInfo(). |
| 2613 PressTouchPoint(0, 1); | 2822 PressTouchPoint(0, 1); |
| 2614 SendTouchEvent(); | 2823 SendTouchEvent(); |
| 2615 CheckLatencyInfoComponentInMessage( | 2824 CheckLatencyInfoComponentInMessage( |
| 2616 process_, GetLatencyComponentId(), WebInputEvent::TouchStart); | 2825 process_, GetLatencyComponentId(), WebInputEvent::TouchStart); |
| 2617 SendInputEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED); | 2826 SendInputEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED); |
| 2618 } | 2827 } |
| 2619 | 2828 |
| 2620 } // namespace content | 2829 } // namespace content |
| OLD | NEW |