| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/test_runner/event_sender.h" | 5 #include "components/test_runner/event_sender.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 } | 146 } |
| 147 } | 147 } |
| 148 } | 148 } |
| 149 | 149 |
| 150 return true; | 150 return true; |
| 151 } | 151 } |
| 152 | 152 |
| 153 WebMouseEvent::Button GetButtonTypeFromButtonNumber(int button_code) { | 153 WebMouseEvent::Button GetButtonTypeFromButtonNumber(int button_code) { |
| 154 switch (button_code) { | 154 switch (button_code) { |
| 155 case -1: | 155 case -1: |
| 156 return WebMouseEvent::ButtonNone; | 156 return WebMouseEvent::Button::NoButton; |
| 157 case 0: | 157 case 0: |
| 158 return WebMouseEvent::ButtonLeft; | 158 return WebMouseEvent::Button::Left; |
| 159 case 1: | 159 case 1: |
| 160 return WebMouseEvent::ButtonMiddle; | 160 return WebMouseEvent::Button::Middle; |
| 161 case 2: | 161 case 2: |
| 162 return WebMouseEvent::ButtonRight; | 162 return WebMouseEvent::Button::Right; |
| 163 } | 163 } |
| 164 NOTREACHED(); | 164 NOTREACHED(); |
| 165 return WebMouseEvent::ButtonNone; | 165 return WebMouseEvent::Button::NoButton; |
| 166 } | 166 } |
| 167 | 167 |
| 168 int GetWebMouseEventModifierForButton(WebMouseEvent::Button button) { | 168 int GetWebMouseEventModifierForButton(WebMouseEvent::Button button) { |
| 169 switch (button) { | 169 switch (button) { |
| 170 case WebMouseEvent::ButtonNone: | 170 case WebMouseEvent::Button::NoButton: |
| 171 return 0; | 171 return 0; |
| 172 case WebMouseEvent::ButtonLeft: | 172 case WebMouseEvent::Button::Left: |
| 173 return WebMouseEvent::LeftButtonDown; | 173 return WebMouseEvent::LeftButtonDown; |
| 174 case WebMouseEvent::ButtonMiddle: | 174 case WebMouseEvent::Button::Middle: |
| 175 return WebMouseEvent::MiddleButtonDown; | 175 return WebMouseEvent::MiddleButtonDown; |
| 176 case WebMouseEvent::ButtonRight: | 176 case WebMouseEvent::Button::Right: |
| 177 return WebMouseEvent::RightButtonDown; | 177 return WebMouseEvent::RightButtonDown; |
| 178 } | 178 } |
| 179 NOTREACHED(); | 179 NOTREACHED(); |
| 180 return 0; | 180 return 0; |
| 181 } | 181 } |
| 182 | 182 |
| 183 const int kButtonsInModifiers = WebMouseEvent::LeftButtonDown | 183 const int kButtonsInModifiers = WebMouseEvent::LeftButtonDown |
| 184 | WebMouseEvent::MiddleButtonDown | WebMouseEvent::RightButtonDown; | 184 | WebMouseEvent::MiddleButtonDown | WebMouseEvent::RightButtonDown; |
| 185 | 185 |
| 186 int modifiersWithButtons(int modifiers, int buttons) { | 186 int modifiersWithButtons(int modifiers, int buttons) { |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1259 | 1259 |
| 1260 void EventSenderBindings::SetWmSysDeadChar(int sys_dead_char) { | 1260 void EventSenderBindings::SetWmSysDeadChar(int sys_dead_char) { |
| 1261 if (sender_) | 1261 if (sender_) |
| 1262 sender_->set_wm_sys_dead_char(sys_dead_char); | 1262 sender_->set_wm_sys_dead_char(sys_dead_char); |
| 1263 } | 1263 } |
| 1264 #endif | 1264 #endif |
| 1265 | 1265 |
| 1266 // EventSender ----------------------------------------------------------------- | 1266 // EventSender ----------------------------------------------------------------- |
| 1267 | 1267 |
| 1268 WebMouseEvent::Button EventSender::last_button_type_ = | 1268 WebMouseEvent::Button EventSender::last_button_type_ = |
| 1269 WebMouseEvent::ButtonNone; | 1269 WebMouseEvent::Button::NoButton; |
| 1270 | 1270 |
| 1271 EventSender::SavedEvent::SavedEvent() | 1271 EventSender::SavedEvent::SavedEvent() |
| 1272 : type(TYPE_UNSPECIFIED), | 1272 : type(TYPE_UNSPECIFIED), |
| 1273 button_type(WebMouseEvent::ButtonNone), | 1273 button_type(WebMouseEvent::Button::NoButton), |
| 1274 milliseconds(0), | 1274 milliseconds(0), |
| 1275 modifiers(0) {} | 1275 modifiers(0) {} |
| 1276 | 1276 |
| 1277 EventSender::EventSender(WebViewTestProxyBase* web_view_test_proxy_base) | 1277 EventSender::EventSender(WebViewTestProxyBase* web_view_test_proxy_base) |
| 1278 : web_view_test_proxy_base_(web_view_test_proxy_base), | 1278 : web_view_test_proxy_base_(web_view_test_proxy_base), |
| 1279 replaying_saved_events_(false), | 1279 replaying_saved_events_(false), |
| 1280 weak_factory_(this) { | 1280 weak_factory_(this) { |
| 1281 Reset(); | 1281 Reset(); |
| 1282 } | 1282 } |
| 1283 | 1283 |
| 1284 EventSender::~EventSender() {} | 1284 EventSender::~EventSender() {} |
| 1285 | 1285 |
| 1286 void EventSender::Reset() { | 1286 void EventSender::Reset() { |
| 1287 DCHECK(current_drag_data_.isNull()); | 1287 DCHECK(current_drag_data_.isNull()); |
| 1288 current_drag_data_.reset(); | 1288 current_drag_data_.reset(); |
| 1289 current_drag_effect_ = blink::WebDragOperationNone; | 1289 current_drag_effect_ = blink::WebDragOperationNone; |
| 1290 current_drag_effects_allowed_ = blink::WebDragOperationNone; | 1290 current_drag_effects_allowed_ = blink::WebDragOperationNone; |
| 1291 if (view() && | 1291 if (view() && |
| 1292 current_pointer_state_[kRawMousePointerId].pressed_button_ != | 1292 current_pointer_state_[kRawMousePointerId].pressed_button_ != |
| 1293 WebMouseEvent::ButtonNone) | 1293 WebMouseEvent::Button::NoButton) |
| 1294 view()->mouseCaptureLost(); | 1294 view()->mouseCaptureLost(); |
| 1295 current_pointer_state_.clear(); | 1295 current_pointer_state_.clear(); |
| 1296 is_drag_mode_ = true; | 1296 is_drag_mode_ = true; |
| 1297 force_layout_on_events_ = true; | 1297 force_layout_on_events_ = true; |
| 1298 | 1298 |
| 1299 #if defined(OS_WIN) | 1299 #if defined(OS_WIN) |
| 1300 wm_key_down_ = WM_KEYDOWN; | 1300 wm_key_down_ = WM_KEYDOWN; |
| 1301 wm_key_up_ = WM_KEYUP; | 1301 wm_key_up_ = WM_KEYUP; |
| 1302 wm_char_ = WM_CHAR; | 1302 wm_char_ = WM_CHAR; |
| 1303 wm_dead_char_ = WM_DEADCHAR; | 1303 wm_dead_char_ = WM_DEADCHAR; |
| 1304 wm_sys_key_down_ = WM_SYSKEYDOWN; | 1304 wm_sys_key_down_ = WM_SYSKEYDOWN; |
| 1305 wm_sys_key_up_ = WM_SYSKEYUP; | 1305 wm_sys_key_up_ = WM_SYSKEYUP; |
| 1306 wm_sys_char_ = WM_SYSCHAR; | 1306 wm_sys_char_ = WM_SYSCHAR; |
| 1307 wm_sys_dead_char_ = WM_SYSDEADCHAR; | 1307 wm_sys_dead_char_ = WM_SYSDEADCHAR; |
| 1308 #endif | 1308 #endif |
| 1309 | 1309 |
| 1310 last_click_time_sec_ = 0; | 1310 last_click_time_sec_ = 0; |
| 1311 last_click_pos_ = WebPoint(0, 0); | 1311 last_click_pos_ = WebPoint(0, 0); |
| 1312 last_button_type_ = WebMouseEvent::ButtonNone; | 1312 last_button_type_ = WebMouseEvent::Button::NoButton; |
| 1313 touch_points_.clear(); | 1313 touch_points_.clear(); |
| 1314 last_context_menu_data_.reset(); | 1314 last_context_menu_data_.reset(); |
| 1315 weak_factory_.InvalidateWeakPtrs(); | 1315 weak_factory_.InvalidateWeakPtrs(); |
| 1316 current_gesture_location_ = WebPoint(0, 0); | 1316 current_gesture_location_ = WebPoint(0, 0); |
| 1317 mouse_event_queue_.clear(); | 1317 mouse_event_queue_.clear(); |
| 1318 | 1318 |
| 1319 time_offset_ms_ = 0; | 1319 time_offset_ms_ = 0; |
| 1320 click_count_ = 0; | 1320 click_count_ = 0; |
| 1321 | 1321 |
| 1322 touch_modifiers_ = 0; | 1322 touch_modifiers_ = 0; |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1430 SavedEvent saved_event; | 1430 SavedEvent saved_event; |
| 1431 saved_event.type = SavedEvent::TYPE_MOUSE_UP; | 1431 saved_event.type = SavedEvent::TYPE_MOUSE_UP; |
| 1432 saved_event.button_type = button_type; | 1432 saved_event.button_type = button_type; |
| 1433 saved_event.modifiers = modifiers; | 1433 saved_event.modifiers = modifiers; |
| 1434 mouse_event_queue_.push_back(saved_event); | 1434 mouse_event_queue_.push_back(saved_event); |
| 1435 ReplaySavedEvents(); | 1435 ReplaySavedEvents(); |
| 1436 } else { | 1436 } else { |
| 1437 current_pointer_state_[pointerId].current_buttons_ &= | 1437 current_pointer_state_[pointerId].current_buttons_ &= |
| 1438 ~GetWebMouseEventModifierForButton(button_type); | 1438 ~GetWebMouseEventModifierForButton(button_type); |
| 1439 current_pointer_state_[pointerId].pressed_button_ = | 1439 current_pointer_state_[pointerId].pressed_button_ = |
| 1440 WebMouseEvent::ButtonNone; | 1440 WebMouseEvent::Button::NoButton; |
| 1441 | 1441 |
| 1442 WebMouseEvent event; | 1442 WebMouseEvent event; |
| 1443 int click_count = pointerType == WebPointerProperties::PointerType::Mouse | 1443 int click_count = pointerType == WebPointerProperties::PointerType::Mouse |
| 1444 ? click_count_ | 1444 ? click_count_ |
| 1445 : 0; | 1445 : 0; |
| 1446 InitMouseEventGeneric(WebInputEvent::MouseUp, button_type, | 1446 InitMouseEventGeneric(WebInputEvent::MouseUp, button_type, |
| 1447 current_pointer_state_[pointerId].current_buttons_, | 1447 current_pointer_state_[pointerId].current_buttons_, |
| 1448 current_pointer_state_[pointerId].last_pos_, | 1448 current_pointer_state_[pointerId].last_pos_, |
| 1449 GetCurrentEventTimeSec(), click_count, modifiers, | 1449 GetCurrentEventTimeSec(), click_count, modifiers, |
| 1450 pointerType, pointerId, pressure, tiltX, tiltY, | 1450 pointerType, pointerId, pressure, tiltX, tiltY, |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1725 | 1725 |
| 1726 void EventSender::FireKeyboardEventsToElement() {} | 1726 void EventSender::FireKeyboardEventsToElement() {} |
| 1727 | 1727 |
| 1728 void EventSender::ClearKillRing() {} | 1728 void EventSender::ClearKillRing() {} |
| 1729 | 1729 |
| 1730 std::vector<std::string> EventSender::ContextClick() { | 1730 std::vector<std::string> EventSender::ContextClick() { |
| 1731 if (force_layout_on_events_) { | 1731 if (force_layout_on_events_) { |
| 1732 view()->updateAllLifecyclePhases(); | 1732 view()->updateAllLifecyclePhases(); |
| 1733 } | 1733 } |
| 1734 | 1734 |
| 1735 UpdateClickCountForButton(WebMouseEvent::ButtonRight); | 1735 UpdateClickCountForButton(WebMouseEvent::Button::Right); |
| 1736 | 1736 |
| 1737 // Clears last context menu data because we need to know if the context menu | 1737 // Clears last context menu data because we need to know if the context menu |
| 1738 // be requested after following mouse events. | 1738 // be requested after following mouse events. |
| 1739 last_context_menu_data_.reset(); | 1739 last_context_menu_data_.reset(); |
| 1740 | 1740 |
| 1741 // Generate right mouse down and up. | 1741 // Generate right mouse down and up. |
| 1742 WebMouseEvent event; | 1742 WebMouseEvent event; |
| 1743 // This is a hack to work around only allowing a single pressed button since | 1743 // This is a hack to work around only allowing a single pressed button since |
| 1744 // we want to test the case where both the left and right mouse buttons are | 1744 // we want to test the case where both the left and right mouse buttons are |
| 1745 // pressed. | 1745 // pressed. |
| 1746 // TODO(mustaq): This hack seems unused here! But do we need this hack at all | 1746 // TODO(mustaq): This hack seems unused here! But do we need this hack at all |
| 1747 // after adding current_buttons_. | 1747 // after adding current_buttons_. |
| 1748 if (current_pointer_state_[kRawMousePointerId].pressed_button_ == | 1748 if (current_pointer_state_[kRawMousePointerId].pressed_button_ == |
| 1749 WebMouseEvent::ButtonNone) { | 1749 WebMouseEvent::Button::NoButton) { |
| 1750 current_pointer_state_[kRawMousePointerId].pressed_button_ = | 1750 current_pointer_state_[kRawMousePointerId].pressed_button_ = |
| 1751 WebMouseEvent::ButtonRight; | 1751 WebMouseEvent::Button::Right; |
| 1752 current_pointer_state_[kRawMousePointerId].current_buttons_ |= | 1752 current_pointer_state_[kRawMousePointerId].current_buttons_ |= |
| 1753 GetWebMouseEventModifierForButton( | 1753 GetWebMouseEventModifierForButton( |
| 1754 current_pointer_state_[kRawMousePointerId].pressed_button_); | 1754 current_pointer_state_[kRawMousePointerId].pressed_button_); |
| 1755 } | 1755 } |
| 1756 InitMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::ButtonRight, | 1756 InitMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::Button::Right, |
| 1757 current_pointer_state_[kRawMousePointerId].current_buttons_, | 1757 current_pointer_state_[kRawMousePointerId].current_buttons_, |
| 1758 current_pointer_state_[kRawMousePointerId].last_pos_, | 1758 current_pointer_state_[kRawMousePointerId].last_pos_, |
| 1759 GetCurrentEventTimeSec(), click_count_, 0, &event); | 1759 GetCurrentEventTimeSec(), click_count_, 0, &event); |
| 1760 HandleInputEventOnViewOrPopup(event); | 1760 HandleInputEventOnViewOrPopup(event); |
| 1761 | 1761 |
| 1762 #if defined(OS_WIN) | 1762 #if defined(OS_WIN) |
| 1763 current_pointer_state_[kRawMousePointerId].current_buttons_ &= | 1763 current_pointer_state_[kRawMousePointerId].current_buttons_ &= |
| 1764 ~GetWebMouseEventModifierForButton(WebMouseEvent::ButtonRight); | 1764 ~GetWebMouseEventModifierForButton(WebMouseEvent::Button::Right); |
| 1765 current_pointer_state_[kRawMousePointerId].pressed_button_ = | 1765 current_pointer_state_[kRawMousePointerId].pressed_button_ = |
| 1766 WebMouseEvent::ButtonNone; | 1766 WebMouseEvent::Button::NoButton; |
| 1767 | 1767 |
| 1768 InitMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::ButtonRight, | 1768 InitMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::Button::Right, |
| 1769 current_pointer_state_[kRawMousePointerId].current_buttons_, | 1769 current_pointer_state_[kRawMousePointerId].current_buttons_, |
| 1770 current_pointer_state_[kRawMousePointerId].last_pos_, | 1770 current_pointer_state_[kRawMousePointerId].last_pos_, |
| 1771 GetCurrentEventTimeSec(), click_count_, 0, &event); | 1771 GetCurrentEventTimeSec(), click_count_, 0, &event); |
| 1772 HandleInputEventOnViewOrPopup(event); | 1772 HandleInputEventOnViewOrPopup(event); |
| 1773 #endif | 1773 #endif |
| 1774 | 1774 |
| 1775 std::vector<std::string> menu_items = | 1775 std::vector<std::string> menu_items = |
| 1776 MakeMenuItemStringsFor(last_context_menu_data_.get(), delegate()); | 1776 MakeMenuItemStringsFor(last_context_menu_data_.get(), delegate()); |
| 1777 last_context_menu_data_.reset(); | 1777 last_context_menu_data_.reset(); |
| 1778 return menu_items; | 1778 return menu_items; |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1979 | 1979 |
| 1980 void EventSender::NotifyStartOfTouchScroll() { | 1980 void EventSender::NotifyStartOfTouchScroll() { |
| 1981 WebTouchEvent event; | 1981 WebTouchEvent event; |
| 1982 event.type = WebInputEvent::TouchScrollStarted; | 1982 event.type = WebInputEvent::TouchScrollStarted; |
| 1983 HandleInputEventOnViewOrPopup(event); | 1983 HandleInputEventOnViewOrPopup(event); |
| 1984 } | 1984 } |
| 1985 | 1985 |
| 1986 void EventSender::LeapForward(int milliseconds) { | 1986 void EventSender::LeapForward(int milliseconds) { |
| 1987 if (is_drag_mode_ && | 1987 if (is_drag_mode_ && |
| 1988 current_pointer_state_[kRawMousePointerId].pressed_button_ == | 1988 current_pointer_state_[kRawMousePointerId].pressed_button_ == |
| 1989 WebMouseEvent::ButtonLeft && | 1989 WebMouseEvent::Button::Left && |
| 1990 !replaying_saved_events_) { | 1990 !replaying_saved_events_) { |
| 1991 SavedEvent saved_event; | 1991 SavedEvent saved_event; |
| 1992 saved_event.type = SavedEvent::TYPE_LEAP_FORWARD; | 1992 saved_event.type = SavedEvent::TYPE_LEAP_FORWARD; |
| 1993 saved_event.milliseconds = milliseconds; | 1993 saved_event.milliseconds = milliseconds; |
| 1994 mouse_event_queue_.push_back(saved_event); | 1994 mouse_event_queue_.push_back(saved_event); |
| 1995 } else { | 1995 } else { |
| 1996 DoLeapForward(milliseconds); | 1996 DoLeapForward(milliseconds); |
| 1997 } | 1997 } |
| 1998 } | 1998 } |
| 1999 | 1999 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2029 // Provide a drag source. | 2029 // Provide a drag source. |
| 2030 view()->dragTargetDragEnter( | 2030 view()->dragTargetDragEnter( |
| 2031 current_drag_data_, scaled_last_pos, scaled_last_pos, | 2031 current_drag_data_, scaled_last_pos, scaled_last_pos, |
| 2032 current_drag_effects_allowed_, 0); | 2032 current_drag_effects_allowed_, 0); |
| 2033 // |is_drag_mode_| saves events and then replays them later. We don't | 2033 // |is_drag_mode_| saves events and then replays them later. We don't |
| 2034 // need/want that. | 2034 // need/want that. |
| 2035 is_drag_mode_ = false; | 2035 is_drag_mode_ = false; |
| 2036 | 2036 |
| 2037 // Make the rest of eventSender think a drag is in progress. | 2037 // Make the rest of eventSender think a drag is in progress. |
| 2038 current_pointer_state_[kRawMousePointerId].pressed_button_ = | 2038 current_pointer_state_[kRawMousePointerId].pressed_button_ = |
| 2039 WebMouseEvent::ButtonLeft; | 2039 WebMouseEvent::Button::Left; |
| 2040 current_pointer_state_[kRawMousePointerId].current_buttons_ |= | 2040 current_pointer_state_[kRawMousePointerId].current_buttons_ |= |
| 2041 GetWebMouseEventModifierForButton( | 2041 GetWebMouseEventModifierForButton( |
| 2042 current_pointer_state_[kRawMousePointerId].pressed_button_); | 2042 current_pointer_state_[kRawMousePointerId].pressed_button_); |
| 2043 } | 2043 } |
| 2044 | 2044 |
| 2045 void EventSender::AddTouchPoint(float x, float y, gin::Arguments* args) { | 2045 void EventSender::AddTouchPoint(float x, float y, gin::Arguments* args) { |
| 2046 WebTouchPoint touch_point; | 2046 WebTouchPoint touch_point; |
| 2047 touch_point.pointerType = WebPointerProperties::PointerType::Touch; | 2047 touch_point.pointerType = WebPointerProperties::PointerType::Touch; |
| 2048 touch_point.state = WebTouchPoint::StatePressed; | 2048 touch_point.state = WebTouchPoint::StatePressed; |
| 2049 touch_point.position = WebFloatPoint(x, y); | 2049 touch_point.position = WebFloatPoint(x, y); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2157 float pressure = 0; | 2157 float pressure = 0; |
| 2158 int tiltX = 0; | 2158 int tiltX = 0; |
| 2159 int tiltY = 0; | 2159 int tiltY = 0; |
| 2160 if (!getMousePenPointerProperties(args, pointerType, pointerId, pressure, | 2160 if (!getMousePenPointerProperties(args, pointerType, pointerId, pressure, |
| 2161 tiltX, tiltY)) | 2161 tiltX, tiltY)) |
| 2162 return; | 2162 return; |
| 2163 | 2163 |
| 2164 if (pointerType == WebPointerProperties::PointerType::Mouse && | 2164 if (pointerType == WebPointerProperties::PointerType::Mouse && |
| 2165 is_drag_mode_ && !replaying_saved_events_ && | 2165 is_drag_mode_ && !replaying_saved_events_ && |
| 2166 current_pointer_state_[kRawMousePointerId].pressed_button_ == | 2166 current_pointer_state_[kRawMousePointerId].pressed_button_ == |
| 2167 WebMouseEvent::ButtonLeft) { | 2167 WebMouseEvent::Button::Left) { |
| 2168 SavedEvent saved_event; | 2168 SavedEvent saved_event; |
| 2169 saved_event.type = SavedEvent::TYPE_MOUSE_MOVE; | 2169 saved_event.type = SavedEvent::TYPE_MOUSE_MOVE; |
| 2170 saved_event.pos = mouse_pos; | 2170 saved_event.pos = mouse_pos; |
| 2171 saved_event.modifiers = modifiers; | 2171 saved_event.modifiers = modifiers; |
| 2172 mouse_event_queue_.push_back(saved_event); | 2172 mouse_event_queue_.push_back(saved_event); |
| 2173 } else { | 2173 } else { |
| 2174 current_pointer_state_[pointerId].last_pos_ = mouse_pos; | 2174 current_pointer_state_[pointerId].last_pos_ = mouse_pos; |
| 2175 WebMouseEvent event; | 2175 WebMouseEvent event; |
| 2176 int click_count = pointerType == WebPointerProperties::PointerType::Mouse | 2176 int click_count = pointerType == WebPointerProperties::PointerType::Mouse |
| 2177 ? click_count_ | 2177 ? click_count_ |
| 2178 : 0; | 2178 : 0; |
| 2179 InitMouseEventGeneric( | 2179 InitMouseEventGeneric( |
| 2180 WebInputEvent::MouseMove, | 2180 WebInputEvent::MouseMove, |
| 2181 current_pointer_state_[kRawMousePointerId].pressed_button_, | 2181 current_pointer_state_[kRawMousePointerId].pressed_button_, |
| 2182 current_pointer_state_[kRawMousePointerId].current_buttons_, mouse_pos, | 2182 current_pointer_state_[kRawMousePointerId].current_buttons_, mouse_pos, |
| 2183 GetCurrentEventTimeSec(), click_count, modifiers, pointerType, | 2183 GetCurrentEventTimeSec(), click_count, modifiers, pointerType, |
| 2184 pointerId, pressure, tiltX, tiltY, &event); | 2184 pointerId, pressure, tiltX, tiltY, &event); |
| 2185 HandleInputEventOnViewOrPopup(event); | 2185 HandleInputEventOnViewOrPopup(event); |
| 2186 if (pointerType == WebPointerProperties::PointerType::Mouse) | 2186 if (pointerType == WebPointerProperties::PointerType::Mouse) |
| 2187 DoDragAfterMouseMove(event); | 2187 DoDragAfterMouseMove(event); |
| 2188 } | 2188 } |
| 2189 } | 2189 } |
| 2190 | 2190 |
| 2191 void EventSender::MouseLeave() { | 2191 void EventSender::MouseLeave() { |
| 2192 if (force_layout_on_events_) | 2192 if (force_layout_on_events_) |
| 2193 view()->updateAllLifecyclePhases(); | 2193 view()->updateAllLifecyclePhases(); |
| 2194 | 2194 |
| 2195 WebMouseEvent event; | 2195 WebMouseEvent event; |
| 2196 InitMouseEvent(WebInputEvent::MouseLeave, WebMouseEvent::ButtonNone, 0, | 2196 InitMouseEvent(WebInputEvent::MouseLeave, WebMouseEvent::Button::NoButton, 0, |
| 2197 current_pointer_state_[kRawMousePointerId].last_pos_, | 2197 current_pointer_state_[kRawMousePointerId].last_pos_, |
| 2198 GetCurrentEventTimeSec(), click_count_, 0, &event); | 2198 GetCurrentEventTimeSec(), click_count_, 0, &event); |
| 2199 HandleInputEventOnViewOrPopup(event); | 2199 HandleInputEventOnViewOrPopup(event); |
| 2200 } | 2200 } |
| 2201 | 2201 |
| 2202 | 2202 |
| 2203 void EventSender::ScheduleAsynchronousClick(int button_number, int modifiers) { | 2203 void EventSender::ScheduleAsynchronousClick(int button_number, int modifiers) { |
| 2204 delegate()->PostTask(new WebCallbackTask( | 2204 delegate()->PostTask(new WebCallbackTask( |
| 2205 base::Bind(&EventSender::MouseDown, weak_factory_.GetWeakPtr(), | 2205 base::Bind(&EventSender::MouseDown, weak_factory_.GetWeakPtr(), |
| 2206 button_number, modifiers))); | 2206 button_number, modifiers))); |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2711 | 2711 |
| 2712 // Bail if dragover caused cancellation. | 2712 // Bail if dragover caused cancellation. |
| 2713 if (current_drag_data_.isNull()) | 2713 if (current_drag_data_.isNull()) |
| 2714 return; | 2714 return; |
| 2715 | 2715 |
| 2716 FinishDragAndDrop(unscaled_event, drag_effect); | 2716 FinishDragAndDrop(unscaled_event, drag_effect); |
| 2717 } | 2717 } |
| 2718 | 2718 |
| 2719 void EventSender::DoDragAfterMouseMove(const WebMouseEvent& unscaled_event) { | 2719 void EventSender::DoDragAfterMouseMove(const WebMouseEvent& unscaled_event) { |
| 2720 if (current_pointer_state_[kRawMousePointerId].pressed_button_ == | 2720 if (current_pointer_state_[kRawMousePointerId].pressed_button_ == |
| 2721 WebMouseEvent::ButtonNone || | 2721 WebMouseEvent::Button::NoButton || |
| 2722 current_drag_data_.isNull()) { | 2722 current_drag_data_.isNull()) { |
| 2723 return; | 2723 return; |
| 2724 } | 2724 } |
| 2725 | 2725 |
| 2726 std::unique_ptr<WebInputEvent> scaled_event = ScaleEvent(unscaled_event); | 2726 std::unique_ptr<WebInputEvent> scaled_event = ScaleEvent(unscaled_event); |
| 2727 const WebMouseEvent* event = | 2727 const WebMouseEvent* event = |
| 2728 scaled_event.get() ? static_cast<WebMouseEvent*>(scaled_event.get()) | 2728 scaled_event.get() ? static_cast<WebMouseEvent*>(scaled_event.get()) |
| 2729 : &unscaled_event; | 2729 : &unscaled_event; |
| 2730 | 2730 |
| 2731 WebPoint client_point(event->x, event->y); | 2731 WebPoint client_point(event->x, event->y); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2755 DoDragAfterMouseMove(event); | 2755 DoDragAfterMouseMove(event); |
| 2756 break; | 2756 break; |
| 2757 } | 2757 } |
| 2758 case SavedEvent::TYPE_LEAP_FORWARD: | 2758 case SavedEvent::TYPE_LEAP_FORWARD: |
| 2759 DoLeapForward(e.milliseconds); | 2759 DoLeapForward(e.milliseconds); |
| 2760 break; | 2760 break; |
| 2761 case SavedEvent::TYPE_MOUSE_UP: { | 2761 case SavedEvent::TYPE_MOUSE_UP: { |
| 2762 current_pointer_state_[kRawMousePointerId].current_buttons_ &= | 2762 current_pointer_state_[kRawMousePointerId].current_buttons_ &= |
| 2763 ~GetWebMouseEventModifierForButton(e.button_type); | 2763 ~GetWebMouseEventModifierForButton(e.button_type); |
| 2764 current_pointer_state_[kRawMousePointerId].pressed_button_ = | 2764 current_pointer_state_[kRawMousePointerId].pressed_button_ = |
| 2765 WebMouseEvent::ButtonNone; | 2765 WebMouseEvent::Button::NoButton; |
| 2766 | 2766 |
| 2767 WebMouseEvent event; | 2767 WebMouseEvent event; |
| 2768 InitMouseEvent( | 2768 InitMouseEvent( |
| 2769 WebInputEvent::MouseUp, e.button_type, | 2769 WebInputEvent::MouseUp, e.button_type, |
| 2770 current_pointer_state_[kRawMousePointerId].current_buttons_, | 2770 current_pointer_state_[kRawMousePointerId].current_buttons_, |
| 2771 current_pointer_state_[kRawMousePointerId].last_pos_, | 2771 current_pointer_state_[kRawMousePointerId].last_pos_, |
| 2772 GetCurrentEventTimeSec(), click_count_, e.modifiers, &event); | 2772 GetCurrentEventTimeSec(), click_count_, e.modifiers, &event); |
| 2773 HandleInputEventOnViewOrPopup(event); | 2773 HandleInputEventOnViewOrPopup(event); |
| 2774 DoDragAfterMouseUp(event); | 2774 DoDragAfterMouseUp(event); |
| 2775 break; | 2775 break; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2871 } | 2871 } |
| 2872 | 2872 |
| 2873 std::unique_ptr<WebInputEvent> EventSender::ScaleEvent( | 2873 std::unique_ptr<WebInputEvent> EventSender::ScaleEvent( |
| 2874 const WebInputEvent& event) { | 2874 const WebInputEvent& event) { |
| 2875 // ui::ScaleWebInputEvent returns nullptr when the scale is 1.0f as the event | 2875 // ui::ScaleWebInputEvent returns nullptr when the scale is 1.0f as the event |
| 2876 // does not have to be converted. | 2876 // does not have to be converted. |
| 2877 return ui::ScaleWebInputEvent(event, delegate()->GetWindowToViewportScale()); | 2877 return ui::ScaleWebInputEvent(event, delegate()->GetWindowToViewportScale()); |
| 2878 } | 2878 } |
| 2879 | 2879 |
| 2880 } // namespace test_runner | 2880 } // namespace test_runner |
| OLD | NEW |