| Index: content/browser/renderer_host/input/touch_emulator.cc
|
| diff --git a/content/browser/renderer_host/input/touch_emulator.cc b/content/browser/renderer_host/input/touch_emulator.cc
|
| index 61ae63ef1fffa283ce8a9e543cefadf9ebc8002b..2d0112a8482860d64f560ef90b739965c2c7319f 100644
|
| --- a/content/browser/renderer_host/input/touch_emulator.cc
|
| +++ b/content/browser/renderer_host/input/touch_emulator.cc
|
| @@ -29,8 +29,9 @@ namespace {
|
|
|
| ui::GestureProvider::Config GetGestureProviderConfig() {
|
| // TODO(dgozman): Use different configs to emulate mobile/desktop as
|
| - // requested by renderer.
|
| - ui::GestureProvider::Config config = ui::DefaultGestureProviderConfig();
|
| + // requested by renderer, crbug/425586.
|
| + ui::GestureProvider::Config config = ui::GetGestureProviderConfig(
|
| + ui::GestureProviderConfigType::GENERIC_MOBILE);
|
| config.gesture_begin_end_types_enabled = false;
|
| config.gesture_detector_config.swipe_enabled = false;
|
| config.gesture_detector_config.two_finger_tap_enabled = false;
|
| @@ -157,8 +158,14 @@ bool TouchEmulator::HandleMouseEvent(const WebMouseEvent& mouse_event) {
|
|
|
| UpdateShiftPressed((mouse_event.modifiers & WebInputEvent::ShiftKey) != 0);
|
|
|
| - if (FillTouchEventAndPoint(mouse_event) &&
|
| - gesture_provider_.OnTouchEvent(MotionEventWeb(touch_event_))) {
|
| + if (mouse_event.type != WebInputEvent::MouseDown &&
|
| + mouse_event.type != WebInputEvent::MouseMove &&
|
| + mouse_event.type != WebInputEvent::MouseUp) {
|
| + return true;
|
| + }
|
| +
|
| + if (gesture_provider_.OnTouchEvent(MotionEventWeb(touch_event_))) {
|
| + FillTouchEventAndPoint(mouse_event);
|
| ForwardTouchEventToClient();
|
| }
|
|
|
| @@ -394,12 +401,6 @@ void TouchEmulator::ScrollEnd(const WebGestureEvent& event) {
|
| }
|
|
|
| bool TouchEmulator::FillTouchEventAndPoint(const WebMouseEvent& mouse_event) {
|
| - if (mouse_event.type != WebInputEvent::MouseDown &&
|
| - mouse_event.type != WebInputEvent::MouseMove &&
|
| - mouse_event.type != WebInputEvent::MouseUp) {
|
| - return false;
|
| - }
|
| -
|
| WebInputEvent::Type eventType;
|
| switch (mouse_event.type) {
|
| case WebInputEvent::MouseDown:
|
| @@ -413,12 +414,14 @@ bool TouchEmulator::FillTouchEventAndPoint(const WebMouseEvent& mouse_event) {
|
| break;
|
| default:
|
| eventType = WebInputEvent::Undefined;
|
| - NOTREACHED();
|
| + NOTREACHED() << "Invalid event for touch emulation: " << mouse_event.type;
|
| }
|
| touch_event_.touchesLength = 1;
|
| touch_event_.modifiers = mouse_event.modifiers;
|
| WebTouchEventTraits::ResetTypeAndTouchStates(
|
| eventType, mouse_event.timeStampSeconds, &touch_event_);
|
| + touch_event_.defaultActionMayCauseScrolling =
|
| + gesture_provider_.LastTouchEventDidGenerateScroll();
|
|
|
| WebTouchPoint& point = touch_event_.touches[0];
|
| point.id = 0;
|
|
|