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

Unified Diff: components/test_runner/event_sender.cc

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Rebase Created 3 years, 12 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 side-by-side diff with in-line comments
Download patch
Index: components/test_runner/event_sender.cc
diff --git a/components/test_runner/event_sender.cc b/components/test_runner/event_sender.cc
index 8b2ccef10b451ef46bbc12def713bf47ee1fd73e..49609d2f14e87d96f1757bc3dae317781c2151e2 100644
--- a/components/test_runner/event_sender.cc
+++ b/components/test_runner/event_sender.cc
@@ -200,22 +200,17 @@ int modifiersWithButtons(int modifiers, int buttons) {
| (buttons & kButtonsInModifiers);
}
-void InitMouseEventGeneric(WebInputEvent::Type t,
- WebMouseEvent::Button b,
+void InitMouseEventGeneric(WebMouseEvent::Button b,
int current_buttons,
const WebPoint& pos,
- double time_stamp,
int click_count,
- int modifiers,
WebPointerProperties::PointerType pointerType,
int pointerId,
float pressure,
int tiltX,
int tiltY,
WebMouseEvent* e) {
- e->type = t;
e->button = b;
- e->modifiers = modifiersWithButtons(modifiers, current_buttons);
e->x = pos.x;
e->y = pos.y;
e->globalX = pos.x;
@@ -225,34 +220,26 @@ void InitMouseEventGeneric(WebInputEvent::Type t,
e->force = pressure;
e->tiltX = tiltX;
e->tiltY = tiltY;
- e->timeStampSeconds = time_stamp;
e->clickCount = click_count;
}
-void InitMouseEvent(WebInputEvent::Type t,
- WebMouseEvent::Button b,
+void InitMouseEvent(WebMouseEvent::Button b,
int current_buttons,
const WebPoint& pos,
- double time_stamp,
int click_count,
- int modifiers,
WebMouseEvent* e) {
- InitMouseEventGeneric(t, b, current_buttons, pos, time_stamp, click_count,
- modifiers, WebPointerProperties::PointerType::Mouse, 0,
- 0.0, 0, 0, e);
+ InitMouseEventGeneric(b, current_buttons, pos, click_count,
+ WebPointerProperties::PointerType::Mouse, 0, 0.0, 0, 0,
+ e);
}
-void InitGestureEventFromMouseWheel(WebInputEvent::Type type,
- double time_stamp,
- const WebMouseWheelEvent& wheel_event,
+void InitGestureEventFromMouseWheel(const WebMouseWheelEvent& wheel_event,
WebGestureEvent* gesture_event) {
- gesture_event->type = type;
gesture_event->sourceDevice = blink::WebGestureDeviceTouchpad;
gesture_event->x = wheel_event.x;
gesture_event->y = wheel_event.y;
gesture_event->globalX = wheel_event.globalX;
gesture_event->globalY = wheel_event.globalY;
- gesture_event->timeStampSeconds = time_stamp;
}
int GetKeyModifier(const std::string& modifier_name) {
@@ -1344,16 +1331,21 @@ void EventSender::SetContextMenuData(const WebContextMenuData& data) {
last_context_menu_data_.reset(new WebContextMenuData(data));
}
+int EventSender::ModifiersForPointer(int pointer_id) {
+ return modifiersWithButtons(
+ current_pointer_state_[pointer_id].modifiers_,
+ current_pointer_state_[pointer_id].current_buttons_);
+}
+
void EventSender::DoDragDrop(const WebDragData& drag_data,
WebDragOperationsMask mask) {
- WebMouseEvent raw_event;
- InitMouseEvent(WebInputEvent::MouseDown,
- current_pointer_state_[kRawMousePointerId].pressed_button_,
+ WebMouseEvent raw_event(WebInputEvent::MouseDown,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_,
- current_pointer_state_[kRawMousePointerId].modifiers_,
- &raw_event);
+ click_count_, &raw_event);
std::unique_ptr<WebInputEvent> widget_event =
TransformScreenToWidgetCoordinates(raw_event);
@@ -1401,7 +1393,6 @@ void EventSender::PointerDown(int button_number,
WebMouseEvent::Button button_type =
GetButtonTypeFromButtonNumber(button_number);
- WebMouseEvent event;
int click_count = 0;
current_pointer_state_[pointerId].pressed_button_ = button_type;
current_pointer_state_[pointerId].current_buttons_ |=
@@ -1412,13 +1403,13 @@ void EventSender::PointerDown(int button_number,
UpdateClickCountForButton(button_type);
click_count = click_count_;
}
- InitMouseEventGeneric(WebInputEvent::MouseDown,
- current_pointer_state_[pointerId].pressed_button_,
+ WebMouseEvent event(WebInputEvent::MouseDown, ModifiersForPointer(pointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEventGeneric(current_pointer_state_[pointerId].pressed_button_,
current_pointer_state_[pointerId].current_buttons_,
current_pointer_state_[pointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count,
- current_pointer_state_[pointerId].modifiers_,
- pointerType, pointerId, pressure, tiltX, tiltY, &event);
+ click_count, pointerType, pointerId, pressure, tiltX,
+ tiltY, &event);
HandleInputEventOnViewOrPopup(event);
}
@@ -1447,21 +1438,21 @@ void EventSender::PointerUp(int button_number,
mouse_event_queue_.push_back(saved_event);
ReplaySavedEvents();
} else {
+ current_pointer_state_[pointerId].modifiers_ = modifiers;
current_pointer_state_[pointerId].current_buttons_ &=
~GetWebMouseEventModifierForButton(button_type);
current_pointer_state_[pointerId].pressed_button_ =
WebMouseEvent::Button::NoButton;
- WebMouseEvent event;
+ WebMouseEvent event(WebInputEvent::MouseUp, ModifiersForPointer(pointerId),
+ GetCurrentEventTimeSec());
int click_count = pointerType == WebPointerProperties::PointerType::Mouse
? click_count_
: 0;
- InitMouseEventGeneric(WebInputEvent::MouseUp, button_type,
- current_pointer_state_[pointerId].current_buttons_,
- current_pointer_state_[pointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count, modifiers,
- pointerType, pointerId, pressure, tiltX, tiltY,
- &event);
+ InitMouseEventGeneric(
+ button_type, current_pointer_state_[pointerId].current_buttons_,
+ current_pointer_state_[pointerId].last_pos_, click_count, pointerType,
+ pointerId, pressure, tiltX, tiltY, &event);
HandleInputEventOnViewOrPopup(event);
if (pointerType == WebPointerProperties::PointerType::Mouse)
DoDragAfterMouseUp(event);
@@ -1653,15 +1644,31 @@ void EventSender::KeyDown(const std::string& code_str,
}
}
+ if (needs_shift_key_modifier)
+ modifiers |= WebInputEvent::ShiftKey;
+
+ // See if KeyLocation argument is given.
+ switch (location) {
+ case DOMKeyLocationStandard:
+ break;
+ case DOMKeyLocationLeft:
+ modifiers |= WebInputEvent::IsLeft;
+ break;
+ case DOMKeyLocationRight:
+ modifiers |= WebInputEvent::IsRight;
+ break;
+ case DOMKeyLocationNumpad:
+ modifiers |= WebInputEvent::IsKeyPad;
+ break;
+ }
+
// For one generated keyboard event, we need to generate a keyDown/keyUp
// pair;
// On Windows, we might also need to generate a char event to mimic the
// 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.type = WebInputEvent::RawKeyDown;
- event_down.modifiers = modifiers;
+ WebKeyboardEvent event_down(WebInputEvent::RawKeyDown, modifiers,
+ GetCurrentEventTimeSec());
event_down.windowsKeyCode = code;
event_down.domKey = static_cast<int>(
ui::KeycodeConverter::KeyStringToDomKey(domKeyString));
@@ -1676,27 +1683,8 @@ void EventSender::KeyDown(const std::string& code_str,
if (event_down.modifiers != 0)
event_down.isSystemKey = IsSystemKeyEvent(event_down);
- if (needs_shift_key_modifier)
- event_down.modifiers |= WebInputEvent::ShiftKey;
-
- // See if KeyLocation argument is given.
- switch (location) {
- case DOMKeyLocationStandard:
- break;
- case DOMKeyLocationLeft:
- event_down.modifiers |= WebInputEvent::IsLeft;
- break;
- case DOMKeyLocationRight:
- event_down.modifiers |= WebInputEvent::IsRight;
- break;
- case DOMKeyLocationNumpad:
- event_down.modifiers |= WebInputEvent::IsKeyPad;
- break;
- }
-
- WebKeyboardEvent event_up;
- event_up = event_down;
- event_up.type = WebInputEvent::KeyUp;
+ WebKeyboardEvent event_up = event_down;
+ event_up.setType(WebInputEvent::KeyUp);
// EventSender.m forces a layout here, with at least one
// test (fast/forms/focus-control-to-page.html) relying on this.
if (force_layout_on_events_)
@@ -1714,12 +1702,13 @@ void EventSender::KeyDown(const std::string& code_str,
HandleInputEventOnViewOrPopup(event_down);
if (code == ui::VKEY_ESCAPE && !current_drag_data_.isNull()) {
- WebMouseEvent event;
- InitMouseEvent(WebInputEvent::MouseDown,
- current_pointer_state_[kRawMousePointerId].pressed_button_,
+ WebMouseEvent event(WebInputEvent::MouseDown,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, 0, &event);
+ click_count_, &event);
FinishDragAndDrop(event, blink::WebDragOperationNone);
}
@@ -1727,7 +1716,7 @@ void EventSender::KeyDown(const std::string& code_str,
if (generate_char) {
WebKeyboardEvent event_char = event_up;
- event_char.type = WebInputEvent::Char;
+ event_char.setType(WebInputEvent::Char);
HandleInputEventOnViewOrPopup(event_char);
}
@@ -1751,7 +1740,6 @@ std::vector<std::string> EventSender::ContextClick() {
last_context_menu_data_.reset();
// Generate right mouse down and up.
- WebMouseEvent event;
// This is a hack to work around only allowing a single pressed button since
// we want to test the case where both the left and right mouse buttons are
// pressed.
@@ -1765,10 +1753,13 @@ std::vector<std::string> EventSender::ContextClick() {
GetWebMouseEventModifierForButton(
current_pointer_state_[kRawMousePointerId].pressed_button_);
}
- InitMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::Button::Right,
+ WebMouseEvent event(WebInputEvent::MouseDown,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(WebMouseEvent::Button::Right,
current_pointer_state_[kRawMousePointerId].current_buttons_,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, 0, &event);
+ click_count_, &event);
HandleInputEventOnViewOrPopup(event);
#if defined(OS_WIN)
@@ -1777,11 +1768,14 @@ std::vector<std::string> EventSender::ContextClick() {
current_pointer_state_[kRawMousePointerId].pressed_button_ =
WebMouseEvent::Button::NoButton;
- InitMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::Button::Right,
+ WebMouseEvent mouseUpEvent(WebInputEvent::MouseUp,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(WebMouseEvent::Button::Right,
current_pointer_state_[kRawMousePointerId].current_buttons_,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, 0, &event);
- HandleInputEventOnViewOrPopup(event);
+ click_count_, &mouseUpEvent);
+ HandleInputEventOnViewOrPopup(mouseUpEvent);
#endif
std::vector<std::string> menu_items =
@@ -1907,13 +1901,12 @@ void EventSender::DumpFilenameBeingDragged() {
}
void EventSender::GestureFlingCancel() {
- WebGestureEvent event;
- event.type = WebInputEvent::GestureFlingCancel;
+ WebGestureEvent event(WebInputEvent::GestureFlingCancel,
+ WebInputEvent::NoModifiers, GetCurrentEventTimeSec());
// Generally it won't matter what device we use here, and since it might
// be cumbersome to expect all callers to specify a device, we'll just
// choose Touchpad here.
event.sourceDevice = blink::WebGestureDeviceTouchpad;
- event.timeStampSeconds = GetCurrentEventTimeSec();
if (force_layout_on_events_)
widget()->updateAllLifecyclePhases();
@@ -1926,8 +1919,8 @@ void EventSender::GestureFlingStart(float x,
float velocity_x,
float velocity_y,
gin::Arguments* args) {
- WebGestureEvent event;
- event.type = WebInputEvent::GestureFlingStart;
+ WebGestureEvent event(WebInputEvent::GestureFlingStart,
+ WebInputEvent::NoModifiers, GetCurrentEventTimeSec());
std::string device_string;
if (!args->PeekNext().IsEmpty() && args->PeekNext()->IsString())
@@ -1957,7 +1950,6 @@ void EventSender::GestureFlingStart(float x,
event.data.flingStart.velocityX = velocity_x;
event.data.flingStart.velocityY = velocity_y;
- event.timeStampSeconds = GetCurrentEventTimeSec();
if (force_layout_on_events_)
widget()->updateAllLifecyclePhases();
@@ -1990,8 +1982,8 @@ void EventSender::TouchEnd(gin::Arguments* args) {
}
void EventSender::NotifyStartOfTouchScroll() {
- WebTouchEvent event;
- event.type = WebInputEvent::TouchScrollStarted;
+ WebTouchEvent event(WebInputEvent::TouchScrollStarted,
+ WebInputEvent::NoModifiers, GetCurrentEventTimeSec());
HandleInputEventOnViewOrPopup(event);
}
@@ -2132,13 +2124,14 @@ void EventSender::GestureTwoFingerTap(gin::Arguments* args) {
void EventSender::MouseScrollBy(gin::Arguments* args,
MouseScrollType scroll_type) {
- WebMouseWheelEvent wheel_event;
// TODO(dtapuska): Gestures really should be sent by the MouseWheelEventQueue
// class in the browser. But since the event doesn't propogate up into
// the browser generate the events here. See crbug.com/596095.
bool send_gestures = true;
- InitMouseWheelEvent(args, scroll_type, &wheel_event, &send_gestures);
- if (HandleInputEventOnViewOrPopup(wheel_event) ==
+ WebMouseWheelEvent wheel_event =
+ GetMouseWheelEvent(args, scroll_type, &send_gestures);
+ if (wheel_event.type != WebInputEvent::Undefined &&
+ HandleInputEventOnViewOrPopup(wheel_event) ==
WebInputEventResult::NotHandled &&
send_gestures) {
SendGesturesForMouseWheelEvent(wheel_event);
@@ -2184,16 +2177,17 @@ void EventSender::MouseMoveTo(gin::Arguments* args) {
mouse_event_queue_.push_back(saved_event);
} else {
current_pointer_state_[pointerId].last_pos_ = mouse_pos;
- WebMouseEvent event;
+ current_pointer_state_[pointerId].modifiers_ = modifiers;
+ WebMouseEvent event(WebInputEvent::MouseMove,
+ ModifiersForPointer(pointerId),
+ GetCurrentEventTimeSec());
int click_count = pointerType == WebPointerProperties::PointerType::Mouse
? click_count_
: 0;
InitMouseEventGeneric(
- WebInputEvent::MouseMove,
current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_, mouse_pos,
- GetCurrentEventTimeSec(), click_count, modifiers, pointerType,
- pointerId, pressure, tiltX, tiltY, &event);
+ click_count, pointerType, pointerId, pressure, tiltX, tiltY, &event);
HandleInputEventOnViewOrPopup(event);
if (pointerType == WebPointerProperties::PointerType::Mouse)
DoDragAfterMouseMove(event);
@@ -2204,10 +2198,12 @@ void EventSender::MouseLeave() {
if (force_layout_on_events_)
widget()->updateAllLifecyclePhases();
- WebMouseEvent event;
- InitMouseEvent(WebInputEvent::MouseLeave, WebMouseEvent::Button::NoButton, 0,
+ WebMouseEvent event(WebInputEvent::MouseLeave,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(WebMouseEvent::Button::NoButton, 0,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, 0, &event);
+ click_count_, &event);
HandleInputEventOnViewOrPopup(event);
}
@@ -2273,13 +2269,10 @@ void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type,
if (force_layout_on_events_)
widget()->updateAllLifecyclePhases();
- WebTouchEvent touch_event;
- touch_event.type = type;
- touch_event.modifiers = touch_modifiers_;
+ WebTouchEvent touch_event(type, touch_modifiers_, GetCurrentEventTimeSec());
touch_event.dispatchType = touch_cancelable_
? WebInputEvent::Blocking
: WebInputEvent::EventNonBlocking;
- touch_event.timeStampSeconds = GetCurrentEventTimeSec();
touch_event.movedBeyondSlopRegion = moved_beyond_slop_region;
touch_event.uniqueTouchEventId = unique_touch_event_id;
touch_event.touchesLength = touch_points_.size();
@@ -2301,8 +2294,8 @@ void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type,
void EventSender::GestureEvent(WebInputEvent::Type type,
gin::Arguments* args) {
- WebGestureEvent event;
- event.type = type;
+ WebGestureEvent event(type, WebInputEvent::NoModifiers,
+ GetCurrentEventTimeSec());
// If the first argument is a string, it is to specify the device, otherwise
// the device is assumed to be a touchscreen (since most tests were written
@@ -2527,7 +2520,6 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
event.globalX = event.x;
event.globalY = event.y;
- event.timeStampSeconds = GetCurrentEventTimeSec();
if (force_layout_on_events_)
widget()->updateAllLifecyclePhases();
@@ -2536,13 +2528,13 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
// Long press might start a drag drop session. Complete it if so.
if (type == WebInputEvent::GestureLongPress && !current_drag_data_.isNull()) {
- WebMouseEvent mouse_event;
- InitMouseEvent(WebInputEvent::MouseDown,
- current_pointer_state_[kRawMousePointerId].pressed_button_,
+ WebMouseEvent mouse_event(WebInputEvent::MouseDown,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+
+ InitMouseEvent(current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_,
- WebPoint(x, y), GetCurrentEventTimeSec(), click_count_,
- current_pointer_state_[kRawMousePointerId].modifiers_,
- &mouse_event);
+ WebPoint(x, y), click_count_, &mouse_event);
FinishDragAndDrop(mouse_event, blink::WebDragOperationNone);
}
@@ -2564,10 +2556,9 @@ void EventSender::UpdateClickCountForButton(
}
}
-void EventSender::InitMouseWheelEvent(gin::Arguments* args,
- MouseScrollType scroll_type,
- WebMouseWheelEvent* event,
- bool* send_gestures) {
+WebMouseWheelEvent EventSender::GetMouseWheelEvent(gin::Arguments* args,
+ MouseScrollType scroll_type,
+ bool* send_gestures) {
// Force a layout here just to make sure every position has been
// determined before we send events (as well as all the other methods
// that send an event do).
@@ -2575,14 +2566,10 @@ void EventSender::InitMouseWheelEvent(gin::Arguments* args,
widget()->updateAllLifecyclePhases();
double horizontal;
- if (!args->GetNext(&horizontal)) {
- args->ThrowError();
- return;
- }
double vertical;
- if (!args->GetNext(&vertical)) {
+ if (!args->GetNext(&horizontal) || !args->GetNext(&vertical)) {
args->ThrowError();
- return;
+ return WebMouseWheelEvent();
}
bool paged = false;
@@ -2609,25 +2596,29 @@ void EventSender::InitMouseWheelEvent(gin::Arguments* args,
}
}
- InitMouseEvent(WebInputEvent::MouseWheel,
- current_pointer_state_[kRawMousePointerId].pressed_button_,
+ current_pointer_state_[kRawMousePointerId].modifiers_ = modifiers;
+ WebMouseWheelEvent event(WebInputEvent::MouseWheel,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
+ InitMouseEvent(current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_,
current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, modifiers, event);
- event->wheelTicksX = static_cast<float>(horizontal);
- event->wheelTicksY = static_cast<float>(vertical);
- event->deltaX = event->wheelTicksX;
- event->deltaY = event->wheelTicksY;
- event->scrollByPage = paged;
- event->hasPreciseScrollingDeltas = has_precise_scrolling_deltas;
- event->phase = phase;
+ click_count_, &event);
+ event.wheelTicksX = static_cast<float>(horizontal);
+ event.wheelTicksY = static_cast<float>(vertical);
+ event.deltaX = event.wheelTicksX;
+ event.deltaY = event.wheelTicksY;
+ event.scrollByPage = paged;
+ event.hasPreciseScrollingDeltas = has_precise_scrolling_deltas;
+ event.phase = phase;
if (scroll_type == MouseScrollType::PIXEL) {
- event->wheelTicksX /= kScrollbarPixelsPerTick;
- event->wheelTicksY /= kScrollbarPixelsPerTick;
+ event.wheelTicksX /= kScrollbarPixelsPerTick;
+ event.wheelTicksY /= kScrollbarPixelsPerTick;
} else {
- event->deltaX *= kScrollbarPixelsPerTick;
- event->deltaY *= kScrollbarPixelsPerTick;
+ event.deltaX *= kScrollbarPixelsPerTick;
+ event.deltaY *= kScrollbarPixelsPerTick;
}
+ return event;
}
// Radius fields radius_x and radius_y should eventually be moved to
@@ -2759,12 +2750,14 @@ void EventSender::ReplaySavedEvents() {
switch (e.type) {
case SavedEvent::TYPE_MOUSE_MOVE: {
- WebMouseEvent event;
+ current_pointer_state_[kRawMousePointerId].modifiers_ = e.modifiers;
+ WebMouseEvent event(WebInputEvent::MouseMove,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
InitMouseEvent(
- WebInputEvent::MouseMove,
current_pointer_state_[kRawMousePointerId].pressed_button_,
current_pointer_state_[kRawMousePointerId].current_buttons_, e.pos,
- GetCurrentEventTimeSec(), click_count_, e.modifiers, &event);
+ click_count_, &event);
current_pointer_state_[kRawMousePointerId].last_pos_ =
WebPoint(event.x, event.y);
HandleInputEventOnViewOrPopup(event);
@@ -2779,13 +2772,16 @@ void EventSender::ReplaySavedEvents() {
~GetWebMouseEventModifierForButton(e.button_type);
current_pointer_state_[kRawMousePointerId].pressed_button_ =
WebMouseEvent::Button::NoButton;
+ current_pointer_state_[kRawMousePointerId].modifiers_ = e.modifiers;
- WebMouseEvent event;
+ WebMouseEvent event(WebInputEvent::MouseUp,
+ ModifiersForPointer(kRawMousePointerId),
+ GetCurrentEventTimeSec());
InitMouseEvent(
- WebInputEvent::MouseUp, e.button_type,
+ e.button_type,
current_pointer_state_[kRawMousePointerId].current_buttons_,
- current_pointer_state_[kRawMousePointerId].last_pos_,
- GetCurrentEventTimeSec(), click_count_, e.modifiers, &event);
+ current_pointer_state_[kRawMousePointerId].last_pos_, click_count_,
+ &event);
HandleInputEventOnViewOrPopup(event);
DoDragAfterMouseUp(event);
break;
@@ -2823,10 +2819,9 @@ WebInputEventResult EventSender::HandleInputEventOnViewOrPopup(
void EventSender::SendGesturesForMouseWheelEvent(
const WebMouseWheelEvent wheel_event) {
- WebGestureEvent begin_event;
- InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollBegin,
- GetCurrentEventTimeSec(), wheel_event,
- &begin_event);
+ WebGestureEvent begin_event(WebInputEvent::GestureScrollBegin,
+ wheel_event.modifiers, GetCurrentEventTimeSec());
+ InitGestureEventFromMouseWheel(wheel_event, &begin_event);
begin_event.data.scrollBegin.deltaXHint = wheel_event.deltaX;
begin_event.data.scrollBegin.deltaYHint = wheel_event.deltaY;
if (wheel_event.scrollByPage) {
@@ -2851,10 +2846,9 @@ void EventSender::SendGesturesForMouseWheelEvent(
HandleInputEventOnViewOrPopup(begin_event);
- WebGestureEvent update_event;
- InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollUpdate,
- GetCurrentEventTimeSec(), wheel_event,
- &update_event);
+ WebGestureEvent update_event(WebInputEvent::GestureScrollUpdate,
+ wheel_event.modifiers, GetCurrentEventTimeSec());
+ InitGestureEventFromMouseWheel(wheel_event, &update_event);
update_event.data.scrollUpdate.deltaX =
begin_event.data.scrollBegin.deltaXHint;
update_event.data.scrollUpdate.deltaY =
@@ -2866,10 +2860,9 @@ void EventSender::SendGesturesForMouseWheelEvent(
widget()->updateAllLifecyclePhases();
HandleInputEventOnViewOrPopup(update_event);
- WebGestureEvent end_event;
- InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollEnd,
- GetCurrentEventTimeSec(), wheel_event,
- &end_event);
+ WebGestureEvent end_event(WebInputEvent::GestureScrollEnd,
+ wheel_event.modifiers, GetCurrentEventTimeSec());
+ InitGestureEventFromMouseWheel(wheel_event, &end_event);
end_event.data.scrollEnd.deltaUnits =
begin_event.data.scrollBegin.deltaHintUnits;

Powered by Google App Engine
This is Rietveld 408576698