| Index: components/test_runner/event_sender.cc
|
| diff --git a/components/test_runner/event_sender.cc b/components/test_runner/event_sender.cc
|
| index 44aba8039829818bccdbb6f4e9bcbd58e5d162ca..c6970d4c38dd6d9b48abe93085986a1ea4737bf3 100644
|
| --- a/components/test_runner/event_sender.cc
|
| +++ b/components/test_runner/event_sender.cc
|
| @@ -1329,9 +1329,14 @@ void EventSender::Reset() {
|
| touch_modifiers_ = 0;
|
| touch_cancelable_ = true;
|
| touch_points_.clear();
|
| +
|
| + if (delegate())
|
| + delegate()->SetMockMonotonicTimeFunction(base::Callback<double()>());
|
| }
|
|
|
| void EventSender::Install(WebLocalFrame* frame) {
|
| + delegate()->SetMockMonotonicTimeFunction(
|
| + base::Bind(&EventSender::GetMockTimeSeconds, base::Unretained(this)));
|
| EventSenderBindings::Install(weak_factory_.GetWeakPtr(), frame);
|
| }
|
|
|
| @@ -1346,7 +1351,7 @@ void EventSender::DoDragDrop(const WebDragData& drag_data,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_,
|
| + GetMockTimeSeconds(), click_count_,
|
| current_pointer_state_[kRawMousePointerId].modifiers_,
|
| &unscaled_event);
|
|
|
| @@ -1357,6 +1362,7 @@ void EventSender::DoDragDrop(const WebDragData& drag_data,
|
|
|
| WebPoint client_point(event->x, event->y);
|
| WebPoint screen_point(event->globalX, event->globalY);
|
| +
|
| current_drag_data_ = drag_data;
|
| current_drag_effects_allowed_ = mask;
|
| current_drag_effect_ = view()->dragTargetDragEnter(
|
| @@ -1410,7 +1416,7 @@ void EventSender::PointerDown(int button_number,
|
| current_pointer_state_[pointerId].pressed_button_,
|
| current_pointer_state_[pointerId].current_buttons_,
|
| current_pointer_state_[pointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count,
|
| + GetMockTimeSeconds(), click_count,
|
| current_pointer_state_[pointerId].modifiers_,
|
| pointerType, pointerId, pressure, tiltX, tiltY, &event);
|
|
|
| @@ -1453,7 +1459,7 @@ void EventSender::PointerUp(int button_number,
|
| InitMouseEventGeneric(WebInputEvent::MouseUp, button_type,
|
| current_pointer_state_[pointerId].current_buttons_,
|
| current_pointer_state_[pointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count, modifiers,
|
| + GetMockTimeSeconds(), click_count, modifiers,
|
| pointerType, pointerId, pressure, tiltX, tiltY,
|
| &event);
|
| HandleInputEventOnViewOrPopup(event);
|
| @@ -1653,7 +1659,7 @@ void EventSender::KeyDown(const std::string& code_str,
|
| // Windows event flow; on other platforms we create a merged event and test
|
| // the event flow that that platform provides.
|
| WebKeyboardEvent event_down;
|
| - event_down.timeStampSeconds = GetCurrentEventTimeSec();
|
| + event_down.timeStampSeconds = GetMockTimeSeconds();
|
| event_down.type = WebInputEvent::RawKeyDown;
|
| event_down.modifiers = modifiers;
|
| event_down.windowsKeyCode = code;
|
| @@ -1713,7 +1719,7 @@ void EventSender::KeyDown(const std::string& code_str,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, 0, &event);
|
| + GetMockTimeSeconds(), click_count_, 0, &event);
|
| FinishDragAndDrop(event, blink::WebDragOperationNone);
|
| }
|
|
|
| @@ -1763,7 +1769,7 @@ std::vector<std::string> EventSender::ContextClick() {
|
| InitMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::Button::Right,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, 0, &event);
|
| + GetMockTimeSeconds(), click_count_, 0, &event);
|
| HandleInputEventOnViewOrPopup(event);
|
|
|
| #if defined(OS_WIN)
|
| @@ -1775,7 +1781,7 @@ std::vector<std::string> EventSender::ContextClick() {
|
| InitMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::Button::Right,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, 0, &event);
|
| + GetMockTimeSeconds(), click_count_, 0, &event);
|
| HandleInputEventOnViewOrPopup(event);
|
| #endif
|
|
|
| @@ -1908,7 +1914,7 @@ void EventSender::GestureFlingCancel() {
|
| // be cumbersome to expect all callers to specify a device, we'll just
|
| // choose Touchpad here.
|
| event.sourceDevice = blink::WebGestureDeviceTouchpad;
|
| - event.timeStampSeconds = GetCurrentEventTimeSec();
|
| + event.timeStampSeconds = GetMockTimeSeconds();
|
|
|
| if (force_layout_on_events_)
|
| view()->updateAllLifecyclePhases();
|
| @@ -1952,7 +1958,7 @@ void EventSender::GestureFlingStart(float x,
|
|
|
| event.data.flingStart.velocityX = velocity_x;
|
| event.data.flingStart.velocityY = velocity_y;
|
| - event.timeStampSeconds = GetCurrentEventTimeSec();
|
| + event.timeStampSeconds = GetMockTimeSeconds();
|
|
|
| if (force_layout_on_events_)
|
| view()->updateAllLifecyclePhases();
|
| @@ -2187,7 +2193,7 @@ void EventSender::MouseMoveTo(gin::Arguments* args) {
|
| WebInputEvent::MouseMove,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_, mouse_pos,
|
| - GetCurrentEventTimeSec(), click_count, modifiers, pointerType,
|
| + GetMockTimeSeconds(), click_count, modifiers, pointerType,
|
| pointerId, pressure, tiltX, tiltY, &event);
|
| HandleInputEventOnViewOrPopup(event);
|
| if (pointerType == WebPointerProperties::PointerType::Mouse)
|
| @@ -2202,7 +2208,7 @@ void EventSender::MouseLeave() {
|
| WebMouseEvent event;
|
| InitMouseEvent(WebInputEvent::MouseLeave, WebMouseEvent::Button::NoButton, 0,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, 0, &event);
|
| + GetMockTimeSeconds(), click_count_, 0, &event);
|
| HandleInputEventOnViewOrPopup(event);
|
| }
|
|
|
| @@ -2224,7 +2230,7 @@ void EventSender::ScheduleAsynchronousKeyDown(const std::string& code_str,
|
| modifiers, location)));
|
| }
|
|
|
| -double EventSender::GetCurrentEventTimeSec() {
|
| +double EventSender::GetMockTimeSeconds() {
|
| return (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF() +
|
| time_offset_ms_ / 1000.0;
|
| }
|
| @@ -2274,7 +2280,7 @@ void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type,
|
| touch_event.dispatchType = touch_cancelable_
|
| ? WebInputEvent::Blocking
|
| : WebInputEvent::EventNonBlocking;
|
| - touch_event.timeStampSeconds = GetCurrentEventTimeSec();
|
| + touch_event.timeStampSeconds = GetMockTimeSeconds();
|
| touch_event.movedBeyondSlopRegion = moved_beyond_slop_region;
|
| touch_event.uniqueTouchEventId = unique_touch_event_id;
|
| touch_event.touchesLength = touch_points_.size();
|
| @@ -2522,7 +2528,7 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
|
|
|
| event.globalX = event.x;
|
| event.globalY = event.y;
|
| - event.timeStampSeconds = GetCurrentEventTimeSec();
|
| + event.timeStampSeconds = GetMockTimeSeconds();
|
|
|
| if (force_layout_on_events_)
|
| view()->updateAllLifecyclePhases();
|
| @@ -2535,7 +2541,7 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
|
| InitMouseEvent(WebInputEvent::MouseDown,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| - WebPoint(x, y), GetCurrentEventTimeSec(), click_count_,
|
| + WebPoint(x, y), GetMockTimeSeconds(), click_count_,
|
| current_pointer_state_[kRawMousePointerId].modifiers_,
|
| &mouse_event);
|
|
|
| @@ -2546,7 +2552,7 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
|
|
|
| void EventSender::UpdateClickCountForButton(
|
| WebMouseEvent::Button button_type) {
|
| - if ((GetCurrentEventTimeSec() - last_click_time_sec_ <
|
| + if ((GetMockTimeSeconds() - last_click_time_sec_ <
|
| kMultipleClickTimeSec) &&
|
| (!OutsideMultiClickRadius(
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| @@ -2608,7 +2614,7 @@ void EventSender::InitMouseWheelEvent(gin::Arguments* args,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, modifiers, event);
|
| + GetMockTimeSeconds(), click_count_, modifiers, event);
|
| event->wheelTicksX = static_cast<float>(horizontal);
|
| event->wheelTicksY = static_cast<float>(vertical);
|
| event->deltaX = event->wheelTicksX;
|
| @@ -2755,7 +2761,7 @@ void EventSender::ReplaySavedEvents() {
|
| WebInputEvent::MouseMove,
|
| current_pointer_state_[kRawMousePointerId].pressed_button_,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_, e.pos,
|
| - GetCurrentEventTimeSec(), click_count_, e.modifiers, &event);
|
| + GetMockTimeSeconds(), click_count_, e.modifiers, &event);
|
| current_pointer_state_[kRawMousePointerId].last_pos_ =
|
| WebPoint(event.x, event.y);
|
| HandleInputEventOnViewOrPopup(event);
|
| @@ -2776,7 +2782,7 @@ void EventSender::ReplaySavedEvents() {
|
| WebInputEvent::MouseUp, e.button_type,
|
| current_pointer_state_[kRawMousePointerId].current_buttons_,
|
| current_pointer_state_[kRawMousePointerId].last_pos_,
|
| - GetCurrentEventTimeSec(), click_count_, e.modifiers, &event);
|
| + GetMockTimeSeconds(), click_count_, e.modifiers, &event);
|
| HandleInputEventOnViewOrPopup(event);
|
| DoDragAfterMouseUp(event);
|
| break;
|
| @@ -2808,7 +2814,7 @@ void EventSender::SendGesturesForMouseWheelEvent(
|
| const WebMouseWheelEvent wheel_event) {
|
| WebGestureEvent begin_event;
|
| InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollBegin,
|
| - GetCurrentEventTimeSec(), wheel_event,
|
| + GetMockTimeSeconds(), wheel_event,
|
| &begin_event);
|
| begin_event.data.scrollBegin.deltaXHint = wheel_event.deltaX;
|
| begin_event.data.scrollBegin.deltaYHint = wheel_event.deltaY;
|
| @@ -2836,7 +2842,7 @@ void EventSender::SendGesturesForMouseWheelEvent(
|
|
|
| WebGestureEvent update_event;
|
| InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollUpdate,
|
| - GetCurrentEventTimeSec(), wheel_event,
|
| + GetMockTimeSeconds(), wheel_event,
|
| &update_event);
|
| update_event.data.scrollUpdate.deltaX =
|
| begin_event.data.scrollBegin.deltaXHint;
|
| @@ -2851,7 +2857,7 @@ void EventSender::SendGesturesForMouseWheelEvent(
|
|
|
| WebGestureEvent end_event;
|
| InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollEnd,
|
| - GetCurrentEventTimeSec(), wheel_event,
|
| + GetMockTimeSeconds(), wheel_event,
|
| &end_event);
|
| end_event.data.scrollEnd.deltaUnits =
|
| begin_event.data.scrollBegin.deltaHintUnits;
|
|
|