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

Side by Side Diff: components/test_runner/event_sender.cc

Issue 2036873002: Making EventSender talk to the right WebWidget (for OOPIF support). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 unified diff | Download patch
OLDNEW
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"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
18 #include "build/build_config.h" 18 #include "build/build_config.h"
19 #include "components/test_runner/mock_spell_check.h" 19 #include "components/test_runner/mock_spell_check.h"
20 #include "components/test_runner/test_interfaces.h" 20 #include "components/test_runner/test_interfaces.h"
21 #include "components/test_runner/web_frame_test_proxy.h"
21 #include "components/test_runner/web_task.h" 22 #include "components/test_runner/web_task.h"
22 #include "components/test_runner/web_test_delegate.h" 23 #include "components/test_runner/web_test_delegate.h"
23 #include "components/test_runner/web_test_proxy.h" 24 #include "components/test_runner/web_test_proxy.h"
24 #include "gin/handle.h" 25 #include "gin/handle.h"
25 #include "gin/object_template_builder.h" 26 #include "gin/object_template_builder.h"
26 #include "gin/wrappable.h" 27 #include "gin/wrappable.h"
27 #include "third_party/WebKit/public/platform/WebPointerProperties.h" 28 #include "third_party/WebKit/public/platform/WebPointerProperties.h"
28 #include "third_party/WebKit/public/platform/WebString.h" 29 #include "third_party/WebKit/public/platform/WebString.h"
29 #include "third_party/WebKit/public/platform/WebVector.h" 30 #include "third_party/WebKit/public/platform/WebVector.h"
30 #include "third_party/WebKit/public/web/WebContextMenuData.h" 31 #include "third_party/WebKit/public/web/WebContextMenuData.h"
(...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 1188
1188 WebMouseEvent::Button EventSender::last_button_type_ = 1189 WebMouseEvent::Button EventSender::last_button_type_ =
1189 WebMouseEvent::ButtonNone; 1190 WebMouseEvent::ButtonNone;
1190 1191
1191 EventSender::SavedEvent::SavedEvent() 1192 EventSender::SavedEvent::SavedEvent()
1192 : type(TYPE_UNSPECIFIED), 1193 : type(TYPE_UNSPECIFIED),
1193 button_type(WebMouseEvent::ButtonNone), 1194 button_type(WebMouseEvent::ButtonNone),
1194 milliseconds(0), 1195 milliseconds(0),
1195 modifiers(0) {} 1196 modifiers(0) {}
1196 1197
1197 EventSender::EventSender(WebTestProxyBase* web_test_proxy_base) 1198 EventSender::EventSender(
1198 : web_test_proxy_base_(web_test_proxy_base), 1199 WebFrameTestProxyBase* web_frame_test_proxy_base)
1200 : web_frame_test_proxy_base_(web_frame_test_proxy_base),
1199 send_wheel_gestures_(false), 1201 send_wheel_gestures_(false),
1200 replaying_saved_events_(false), 1202 replaying_saved_events_(false),
1201 weak_factory_(this) { 1203 weak_factory_(this) {
1202 Reset(); 1204 Reset();
1203 } 1205 }
1204 1206
1205 EventSender::~EventSender() {} 1207 EventSender::~EventSender() {}
1206 1208
1207 void EventSender::Reset() { 1209 void EventSender::Reset() {
1208 DCHECK(current_drag_data_.isNull()); 1210 DCHECK(current_drag_data_.isNull());
1209 current_drag_data_.reset(); 1211 current_drag_data_.reset();
1210 current_drag_effect_ = blink::WebDragOperationNone; 1212 current_drag_effect_ = blink::WebDragOperationNone;
1211 current_drag_effects_allowed_ = blink::WebDragOperationNone; 1213 current_drag_effects_allowed_ = blink::WebDragOperationNone;
1212 if (view() && 1214 if (widget() &&
1213 current_pointer_state_[kMousePointerId].pressed_button_ != 1215 current_pointer_state_[kMousePointerId].pressed_button_ !=
1214 WebMouseEvent::ButtonNone) 1216 WebMouseEvent::ButtonNone)
1215 view()->mouseCaptureLost(); 1217 widget()->mouseCaptureLost();
1216 current_pointer_state_.clear(); 1218 current_pointer_state_.clear();
1217 is_drag_mode_ = true; 1219 is_drag_mode_ = true;
1218 force_layout_on_events_ = true; 1220 force_layout_on_events_ = true;
1219 1221
1220 #if defined(OS_WIN) 1222 #if defined(OS_WIN)
1221 wm_key_down_ = WM_KEYDOWN; 1223 wm_key_down_ = WM_KEYDOWN;
1222 wm_key_up_ = WM_KEYUP; 1224 wm_key_up_ = WM_KEYUP;
1223 wm_char_ = WM_CHAR; 1225 wm_char_ = WM_CHAR;
1224 wm_dead_char_ = WM_DEADCHAR; 1226 wm_dead_char_ = WM_DEADCHAR;
1225 wm_sys_key_down_ = WM_SYSKEYDOWN; 1227 wm_sys_key_down_ = WM_SYSKEYDOWN;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 PointerUp(button_number, modifiers, 1291 PointerUp(button_number, modifiers,
1290 blink::WebPointerProperties::PointerType::Mouse, kMousePointerId); 1292 blink::WebPointerProperties::PointerType::Mouse, kMousePointerId);
1291 } 1293 }
1292 1294
1293 void EventSender::PointerDown( 1295 void EventSender::PointerDown(
1294 int button_number, 1296 int button_number,
1295 int modifiers, 1297 int modifiers,
1296 blink::WebPointerProperties::PointerType pointerType, 1298 blink::WebPointerProperties::PointerType pointerType,
1297 int pointerId) { 1299 int pointerId) {
1298 if (force_layout_on_events_) 1300 if (force_layout_on_events_)
1299 view()->updateAllLifecyclePhases(); 1301 widget()->updateAllLifecyclePhases();
1300 1302
1301 DCHECK_NE(-1, button_number); 1303 DCHECK_NE(-1, button_number);
1302 1304
1303 WebMouseEvent::Button button_type = 1305 WebMouseEvent::Button button_type =
1304 GetButtonTypeFromButtonNumber(button_number); 1306 GetButtonTypeFromButtonNumber(button_number);
1305 1307
1306 WebMouseEvent event; 1308 WebMouseEvent event;
1307 int click_count = 0; 1309 int click_count = 0;
1308 current_pointer_state_[pointerId].pressed_button_ = button_type; 1310 current_pointer_state_[pointerId].pressed_button_ = button_type;
1309 current_pointer_state_[pointerId].current_buttons_ |= 1311 current_pointer_state_[pointerId].current_buttons_ |=
(...skipping 17 matching lines...) Expand all
1327 1329
1328 HandleInputEventOnViewOrPopup(event); 1330 HandleInputEventOnViewOrPopup(event);
1329 } 1331 }
1330 1332
1331 void EventSender::PointerUp( 1333 void EventSender::PointerUp(
1332 int button_number, 1334 int button_number,
1333 int modifiers, 1335 int modifiers,
1334 blink::WebPointerProperties::PointerType pointerType, 1336 blink::WebPointerProperties::PointerType pointerType,
1335 int pointerId) { 1337 int pointerId) {
1336 if (force_layout_on_events_) 1338 if (force_layout_on_events_)
1337 view()->updateAllLifecyclePhases(); 1339 widget()->updateAllLifecyclePhases();
1338 1340
1339 DCHECK_NE(-1, button_number); 1341 DCHECK_NE(-1, button_number);
1340 1342
1341 WebMouseEvent::Button button_type = 1343 WebMouseEvent::Button button_type =
1342 GetButtonTypeFromButtonNumber(button_number); 1344 GetButtonTypeFromButtonNumber(button_number);
1343 1345
1344 if (pointerType == blink::WebPointerProperties::PointerType::Mouse && 1346 if (pointerType == blink::WebPointerProperties::PointerType::Mouse &&
1345 is_drag_mode_ && !replaying_saved_events_) { 1347 is_drag_mode_ && !replaying_saved_events_) {
1346 SavedEvent saved_event; 1348 SavedEvent saved_event;
1347 saved_event.type = SavedEvent::TYPE_MOUSE_UP; 1349 saved_event.type = SavedEvent::TYPE_MOUSE_UP;
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 event_down.modifiers |= WebInputEvent::IsKeyPad; 1588 event_down.modifiers |= WebInputEvent::IsKeyPad;
1587 break; 1589 break;
1588 } 1590 }
1589 1591
1590 WebKeyboardEvent event_up; 1592 WebKeyboardEvent event_up;
1591 event_up = event_down; 1593 event_up = event_down;
1592 event_up.type = WebInputEvent::KeyUp; 1594 event_up.type = WebInputEvent::KeyUp;
1593 // EventSender.m forces a layout here, with at least one 1595 // EventSender.m forces a layout here, with at least one
1594 // test (fast/forms/focus-control-to-page.html) relying on this. 1596 // test (fast/forms/focus-control-to-page.html) relying on this.
1595 if (force_layout_on_events_) 1597 if (force_layout_on_events_)
1596 view()->updateAllLifecyclePhases(); 1598 widget()->updateAllLifecyclePhases();
1597 1599
1598 // In the browser, if a keyboard event corresponds to an editor command, 1600 // In the browser, if a keyboard event corresponds to an editor command,
1599 // the command will be dispatched to the renderer just before dispatching 1601 // the command will be dispatched to the renderer just before dispatching
1600 // the keyboard event, and then it will be executed in the 1602 // the keyboard event, and then it will be executed in the
1601 // RenderView::handleCurrentKeyboardEvent() method. 1603 // RenderView::handleCurrentKeyboardEvent() method.
1602 // We just simulate the same behavior here. 1604 // We just simulate the same behavior here.
1603 std::string edit_command; 1605 std::string edit_command;
1604 if (GetEditCommand(event_down, &edit_command)) 1606 if (GetEditCommand(event_down, &edit_command))
1605 delegate()->SetEditCommand(edit_command, ""); 1607 delegate()->SetEditCommand(edit_command, "");
1606 1608
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 } 1640 }
1639 1641
1640 void EventSender::EnableDOMUIEventLogging() {} 1642 void EventSender::EnableDOMUIEventLogging() {}
1641 1643
1642 void EventSender::FireKeyboardEventsToElement() {} 1644 void EventSender::FireKeyboardEventsToElement() {}
1643 1645
1644 void EventSender::ClearKillRing() {} 1646 void EventSender::ClearKillRing() {}
1645 1647
1646 std::vector<std::string> EventSender::ContextClick() { 1648 std::vector<std::string> EventSender::ContextClick() {
1647 if (force_layout_on_events_) { 1649 if (force_layout_on_events_) {
1648 view()->updateAllLifecyclePhases(); 1650 widget()->updateAllLifecyclePhases();
1649 } 1651 }
1650 1652
1651 UpdateClickCountForButton(WebMouseEvent::ButtonRight); 1653 UpdateClickCountForButton(WebMouseEvent::ButtonRight);
1652 1654
1653 // Clears last context menu data because we need to know if the context menu 1655 // Clears last context menu data because we need to know if the context menu
1654 // be requested after following mouse events. 1656 // be requested after following mouse events.
1655 last_context_menu_data_.reset(); 1657 last_context_menu_data_.reset();
1656 1658
1657 // Generate right mouse down and up. 1659 // Generate right mouse down and up.
1658 WebMouseEvent event; 1660 WebMouseEvent event;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1825 void EventSender::GestureFlingCancel() { 1827 void EventSender::GestureFlingCancel() {
1826 WebGestureEvent event; 1828 WebGestureEvent event;
1827 event.type = WebInputEvent::GestureFlingCancel; 1829 event.type = WebInputEvent::GestureFlingCancel;
1828 // Generally it won't matter what device we use here, and since it might 1830 // Generally it won't matter what device we use here, and since it might
1829 // be cumbersome to expect all callers to specify a device, we'll just 1831 // be cumbersome to expect all callers to specify a device, we'll just
1830 // choose Touchpad here. 1832 // choose Touchpad here.
1831 event.sourceDevice = blink::WebGestureDeviceTouchpad; 1833 event.sourceDevice = blink::WebGestureDeviceTouchpad;
1832 event.timeStampSeconds = GetCurrentEventTimeSec(); 1834 event.timeStampSeconds = GetCurrentEventTimeSec();
1833 1835
1834 if (force_layout_on_events_) 1836 if (force_layout_on_events_)
1835 view()->updateAllLifecyclePhases(); 1837 widget()->updateAllLifecyclePhases();
1836 1838
1837 HandleInputEventOnViewOrPopup(event); 1839 HandleInputEventOnViewOrPopup(event);
1838 } 1840 }
1839 1841
1840 void EventSender::GestureFlingStart(float x, 1842 void EventSender::GestureFlingStart(float x,
1841 float y, 1843 float y,
1842 float velocity_x, 1844 float velocity_x,
1843 float velocity_y, 1845 float velocity_y,
1844 gin::Arguments* args) { 1846 gin::Arguments* args) {
1845 WebGestureEvent event; 1847 WebGestureEvent event;
(...skipping 15 matching lines...) Expand all
1861 event.x = x; 1863 event.x = x;
1862 event.y = y; 1864 event.y = y;
1863 event.globalX = event.x; 1865 event.globalX = event.x;
1864 event.globalY = event.y; 1866 event.globalY = event.y;
1865 1867
1866 event.data.flingStart.velocityX = velocity_x; 1868 event.data.flingStart.velocityX = velocity_x;
1867 event.data.flingStart.velocityY = velocity_y; 1869 event.data.flingStart.velocityY = velocity_y;
1868 event.timeStampSeconds = GetCurrentEventTimeSec(); 1870 event.timeStampSeconds = GetCurrentEventTimeSec();
1869 1871
1870 if (force_layout_on_events_) 1872 if (force_layout_on_events_)
1871 view()->updateAllLifecyclePhases(); 1873 widget()->updateAllLifecyclePhases();
1872 1874
1873 HandleInputEventOnViewOrPopup(event); 1875 HandleInputEventOnViewOrPopup(event);
1874 } 1876 }
1875 1877
1876 bool EventSender::IsFlinging() const { 1878 bool EventSender::IsFlinging() const {
1877 return view()->isFlinging(); 1879 return view()->isFlinging();
1878 } 1880 }
1879 1881
1880 void EventSender::GestureScrollFirstPoint(int x, int y) { 1882 void EventSender::GestureScrollFirstPoint(int x, int y) {
1881 current_gesture_location_ = WebPoint(x, y); 1883 current_gesture_location_ = WebPoint(x, y);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2062 InitMouseWheelEvent(args, scroll_type, &wheel_event, &send_gestures); 2064 InitMouseWheelEvent(args, scroll_type, &wheel_event, &send_gestures);
2063 if (HandleInputEventOnViewOrPopup(wheel_event) == 2065 if (HandleInputEventOnViewOrPopup(wheel_event) ==
2064 WebInputEventResult::NotHandled && 2066 WebInputEventResult::NotHandled &&
2065 send_gestures) { 2067 send_gestures) {
2066 SendGesturesForMouseWheelEvent(wheel_event); 2068 SendGesturesForMouseWheelEvent(wheel_event);
2067 } 2069 }
2068 } 2070 }
2069 2071
2070 void EventSender::MouseMoveTo(gin::Arguments* args) { 2072 void EventSender::MouseMoveTo(gin::Arguments* args) {
2071 if (force_layout_on_events_) 2073 if (force_layout_on_events_)
2072 view()->updateAllLifecyclePhases(); 2074 widget()->updateAllLifecyclePhases();
2073 2075
2074 double x; 2076 double x;
2075 double y; 2077 double y;
2076 blink::WebPointerProperties::PointerType pointerType = 2078 blink::WebPointerProperties::PointerType pointerType =
2077 blink::WebPointerProperties::PointerType::Mouse; 2079 blink::WebPointerProperties::PointerType::Mouse;
2078 int pointerId = 0; 2080 int pointerId = 0;
2079 if (!args->GetNext(&x) || !args->GetNext(&y)) { 2081 if (!args->GetNext(&x) || !args->GetNext(&y)) {
2080 args->ThrowError(); 2082 args->ThrowError();
2081 return; 2083 return;
2082 } 2084 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2117 pointerId, 2119 pointerId,
2118 &event); 2120 &event);
2119 HandleInputEventOnViewOrPopup(event); 2121 HandleInputEventOnViewOrPopup(event);
2120 if (pointerType == blink::WebPointerProperties::PointerType::Mouse) 2122 if (pointerType == blink::WebPointerProperties::PointerType::Mouse)
2121 DoDragAfterMouseMove(event); 2123 DoDragAfterMouseMove(event);
2122 } 2124 }
2123 } 2125 }
2124 2126
2125 void EventSender::MouseLeave() { 2127 void EventSender::MouseLeave() {
2126 if (force_layout_on_events_) 2128 if (force_layout_on_events_)
2127 view()->updateAllLifecyclePhases(); 2129 widget()->updateAllLifecyclePhases();
2128 2130
2129 WebMouseEvent event; 2131 WebMouseEvent event;
2130 InitMouseEvent(WebInputEvent::MouseLeave, 2132 InitMouseEvent(WebInputEvent::MouseLeave,
2131 WebMouseEvent::ButtonNone, 2133 WebMouseEvent::ButtonNone,
2132 0, 2134 0,
2133 current_pointer_state_[kMousePointerId].last_pos_, 2135 current_pointer_state_[kMousePointerId].last_pos_,
2134 GetCurrentEventTimeSec(), 2136 GetCurrentEventTimeSec(),
2135 click_count_, 2137 click_count_,
2136 0, 2138 0,
2137 blink::WebPointerProperties::PointerType::Mouse, 2139 blink::WebPointerProperties::PointerType::Mouse,
(...skipping 27 matching lines...) Expand all
2165 2167
2166 void EventSender::DoLeapForward(int milliseconds) { 2168 void EventSender::DoLeapForward(int milliseconds) {
2167 time_offset_ms_ += milliseconds; 2169 time_offset_ms_ += milliseconds;
2168 } 2170 }
2169 2171
2170 void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type, 2172 void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type,
2171 bool movedBeyondSlopRegion) { 2173 bool movedBeyondSlopRegion) {
2172 DCHECK_GT(static_cast<unsigned>(WebTouchEvent::touchesLengthCap), 2174 DCHECK_GT(static_cast<unsigned>(WebTouchEvent::touchesLengthCap),
2173 touch_points_.size()); 2175 touch_points_.size());
2174 if (force_layout_on_events_) 2176 if (force_layout_on_events_)
2175 view()->updateAllLifecyclePhases(); 2177 widget()->updateAllLifecyclePhases();
2176 2178
2177 WebTouchEvent touch_event; 2179 WebTouchEvent touch_event;
2178 touch_event.type = type; 2180 touch_event.type = type;
2179 touch_event.modifiers = touch_modifiers_; 2181 touch_event.modifiers = touch_modifiers_;
2180 touch_event.dispatchType = touch_cancelable_ 2182 touch_event.dispatchType = touch_cancelable_
2181 ? WebInputEvent::Blocking 2183 ? WebInputEvent::Blocking
2182 : WebInputEvent::EventNonBlocking; 2184 : WebInputEvent::EventNonBlocking;
2183 touch_event.timeStampSeconds = GetCurrentEventTimeSec(); 2185 touch_event.timeStampSeconds = GetCurrentEventTimeSec();
2184 touch_event.movedBeyondSlopRegion = movedBeyondSlopRegion; 2186 touch_event.movedBeyondSlopRegion = movedBeyondSlopRegion;
2185 touch_event.touchesLength = touch_points_.size(); 2187 touch_event.touchesLength = touch_points_.size();
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
2440 break; 2442 break;
2441 default: 2443 default:
2442 NOTREACHED(); 2444 NOTREACHED();
2443 } 2445 }
2444 2446
2445 event.globalX = event.x; 2447 event.globalX = event.x;
2446 event.globalY = event.y; 2448 event.globalY = event.y;
2447 event.timeStampSeconds = GetCurrentEventTimeSec(); 2449 event.timeStampSeconds = GetCurrentEventTimeSec();
2448 2450
2449 if (force_layout_on_events_) 2451 if (force_layout_on_events_)
2450 view()->updateAllLifecyclePhases(); 2452 widget()->updateAllLifecyclePhases();
2451 2453
2452 WebInputEventResult result = HandleInputEventOnViewOrPopup(event); 2454 WebInputEventResult result = HandleInputEventOnViewOrPopup(event);
2453 2455
2454 // Long press might start a drag drop session. Complete it if so. 2456 // Long press might start a drag drop session. Complete it if so.
2455 if (type == WebInputEvent::GestureLongPress && !current_drag_data_.isNull()) { 2457 if (type == WebInputEvent::GestureLongPress && !current_drag_data_.isNull()) {
2456 WebMouseEvent mouse_event; 2458 WebMouseEvent mouse_event;
2457 InitMouseEvent(WebInputEvent::MouseDown, 2459 InitMouseEvent(WebInputEvent::MouseDown,
2458 current_pointer_state_[kMousePointerId].pressed_button_, 2460 current_pointer_state_[kMousePointerId].pressed_button_,
2459 current_pointer_state_[kMousePointerId].current_buttons_, 2461 current_pointer_state_[kMousePointerId].current_buttons_,
2460 WebPoint(x, y), GetCurrentEventTimeSec(), 2462 WebPoint(x, y), GetCurrentEventTimeSec(),
(...skipping 24 matching lines...) Expand all
2485 } 2487 }
2486 2488
2487 void EventSender::InitMouseWheelEvent(gin::Arguments* args, 2489 void EventSender::InitMouseWheelEvent(gin::Arguments* args,
2488 MouseScrollType scroll_type, 2490 MouseScrollType scroll_type,
2489 WebMouseWheelEvent* event, 2491 WebMouseWheelEvent* event,
2490 bool* send_gestures) { 2492 bool* send_gestures) {
2491 // Force a layout here just to make sure every position has been 2493 // Force a layout here just to make sure every position has been
2492 // determined before we send events (as well as all the other methods 2494 // determined before we send events (as well as all the other methods
2493 // that send an event do). 2495 // that send an event do).
2494 if (force_layout_on_events_) 2496 if (force_layout_on_events_)
2495 view()->updateAllLifecyclePhases(); 2497 widget()->updateAllLifecyclePhases();
2496 2498
2497 double horizontal; 2499 double horizontal;
2498 if (!args->GetNext(&horizontal)) { 2500 if (!args->GetNext(&horizontal)) {
2499 args->ThrowError(); 2501 args->ThrowError();
2500 return; 2502 return;
2501 } 2503 }
2502 double vertical; 2504 double vertical;
2503 if (!args->GetNext(&vertical)) { 2505 if (!args->GetNext(&vertical)) {
2504 args->ThrowError(); 2506 args->ThrowError();
2505 return; 2507 return;
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
2709 } 2711 }
2710 } 2712 }
2711 2713
2712 replaying_saved_events_ = false; 2714 replaying_saved_events_ = false;
2713 } 2715 }
2714 2716
2715 WebInputEventResult EventSender::HandleInputEventOnViewOrPopup( 2717 WebInputEventResult EventSender::HandleInputEventOnViewOrPopup(
2716 const WebInputEvent& event) { 2718 const WebInputEvent& event) {
2717 last_event_timestamp_ = event.timeStampSeconds; 2719 last_event_timestamp_ = event.timeStampSeconds;
2718 2720
2719 if (WebPagePopup* popup = view()->pagePopup()) { 2721 if (WebPagePopup* popup = widget()->pagePopup()) {
2720 if (!WebInputEvent::isKeyboardEventType(event.type)) 2722 if (!WebInputEvent::isKeyboardEventType(event.type))
2721 return popup->handleInputEvent(event); 2723 return popup->handleInputEvent(event);
2722 } 2724 }
2723 return view()->handleInputEvent(event); 2725 return widget()->handleInputEvent(event);
Łukasz Anforowicz 2016/06/02 21:05:19 Even after this change http/tests/security/referre
2724 } 2726 }
2725 2727
2726 void EventSender::SendGesturesForMouseWheelEvent( 2728 void EventSender::SendGesturesForMouseWheelEvent(
2727 const WebMouseWheelEvent wheel_event) { 2729 const WebMouseWheelEvent wheel_event) {
2728 WebGestureEvent begin_event; 2730 WebGestureEvent begin_event;
2729 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollBegin, 2731 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollBegin,
2730 GetCurrentEventTimeSec(), wheel_event, 2732 GetCurrentEventTimeSec(), wheel_event,
2731 &begin_event); 2733 &begin_event);
2732 begin_event.data.scrollBegin.deltaXHint = wheel_event.deltaX; 2734 begin_event.data.scrollBegin.deltaXHint = wheel_event.deltaX;
2733 begin_event.data.scrollBegin.deltaYHint = wheel_event.deltaY; 2735 begin_event.data.scrollBegin.deltaYHint = wheel_event.deltaY;
2734 if (wheel_event.scrollByPage) { 2736 if (wheel_event.scrollByPage) {
2735 begin_event.data.scrollBegin.deltaHintUnits = blink::WebGestureEvent::Page; 2737 begin_event.data.scrollBegin.deltaHintUnits = blink::WebGestureEvent::Page;
2736 if (begin_event.data.scrollBegin.deltaXHint) { 2738 if (begin_event.data.scrollBegin.deltaXHint) {
2737 begin_event.data.scrollBegin.deltaXHint = 2739 begin_event.data.scrollBegin.deltaXHint =
2738 begin_event.data.scrollBegin.deltaXHint > 0 ? 1 : -1; 2740 begin_event.data.scrollBegin.deltaXHint > 0 ? 1 : -1;
2739 } 2741 }
2740 if (begin_event.data.scrollBegin.deltaYHint) { 2742 if (begin_event.data.scrollBegin.deltaYHint) {
2741 begin_event.data.scrollBegin.deltaYHint = 2743 begin_event.data.scrollBegin.deltaYHint =
2742 begin_event.data.scrollBegin.deltaYHint > 0 ? 1 : -1; 2744 begin_event.data.scrollBegin.deltaYHint > 0 ? 1 : -1;
2743 } 2745 }
2744 } else { 2746 } else {
2745 begin_event.data.scrollBegin.deltaHintUnits = 2747 begin_event.data.scrollBegin.deltaHintUnits =
2746 wheel_event.hasPreciseScrollingDeltas 2748 wheel_event.hasPreciseScrollingDeltas
2747 ? blink::WebGestureEvent::PrecisePixels 2749 ? blink::WebGestureEvent::PrecisePixels
2748 : blink::WebGestureEvent::Pixels; 2750 : blink::WebGestureEvent::Pixels;
2749 } 2751 }
2750 2752
2751 if (force_layout_on_events_) 2753 if (force_layout_on_events_)
2752 view()->updateAllLifecyclePhases(); 2754 widget()->updateAllLifecyclePhases();
2753 2755
2754 HandleInputEventOnViewOrPopup(begin_event); 2756 HandleInputEventOnViewOrPopup(begin_event);
2755 2757
2756 WebGestureEvent update_event; 2758 WebGestureEvent update_event;
2757 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollUpdate, 2759 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollUpdate,
2758 GetCurrentEventTimeSec(), wheel_event, 2760 GetCurrentEventTimeSec(), wheel_event,
2759 &update_event); 2761 &update_event);
2760 update_event.data.scrollUpdate.deltaX = 2762 update_event.data.scrollUpdate.deltaX =
2761 begin_event.data.scrollBegin.deltaXHint; 2763 begin_event.data.scrollBegin.deltaXHint;
2762 update_event.data.scrollUpdate.deltaY = 2764 update_event.data.scrollUpdate.deltaY =
2763 begin_event.data.scrollBegin.deltaYHint; 2765 begin_event.data.scrollBegin.deltaYHint;
2764 update_event.data.scrollUpdate.deltaUnits = 2766 update_event.data.scrollUpdate.deltaUnits =
2765 begin_event.data.scrollBegin.deltaHintUnits; 2767 begin_event.data.scrollBegin.deltaHintUnits;
2766 2768
2767 if (force_layout_on_events_) 2769 if (force_layout_on_events_)
2768 view()->updateAllLifecyclePhases(); 2770 widget()->updateAllLifecyclePhases();
2769 HandleInputEventOnViewOrPopup(update_event); 2771 HandleInputEventOnViewOrPopup(update_event);
2770 2772
2771 WebGestureEvent end_event; 2773 WebGestureEvent end_event;
2772 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollEnd, 2774 InitGestureEventFromMouseWheel(WebInputEvent::GestureScrollEnd,
2773 GetCurrentEventTimeSec(), wheel_event, 2775 GetCurrentEventTimeSec(), wheel_event,
2774 &end_event); 2776 &end_event);
2775 end_event.data.scrollEnd.deltaUnits = 2777 end_event.data.scrollEnd.deltaUnits =
2776 begin_event.data.scrollBegin.deltaHintUnits; 2778 begin_event.data.scrollBegin.deltaHintUnits;
2777 2779
2778 if (force_layout_on_events_) 2780 if (force_layout_on_events_)
2779 view()->updateAllLifecyclePhases(); 2781 widget()->updateAllLifecyclePhases();
2780 HandleInputEventOnViewOrPopup(end_event); 2782 HandleInputEventOnViewOrPopup(end_event);
2781 } 2783 }
2782 2784
2783 TestInterfaces* EventSender::interfaces() { 2785 TestInterfaces* EventSender::interfaces() {
2784 return web_test_proxy_base_->test_interfaces(); 2786 return web_frame_test_proxy_base_->web_test_proxy_base()->test_interfaces();
2785 } 2787 }
2786 2788
2787 WebTestDelegate* EventSender::delegate() { 2789 WebTestDelegate* EventSender::delegate() {
2788 return web_test_proxy_base_->delegate(); 2790 return web_frame_test_proxy_base_->web_test_proxy_base()->delegate();
2789 } 2791 }
2790 2792
2791 const blink::WebView* EventSender::view() const { 2793 const blink::WebView* EventSender::view() const {
2792 return web_test_proxy_base_->web_view(); 2794 return web_frame_test_proxy_base_->web_frame()->view();
2793 } 2795 }
2794 2796
2795 blink::WebView* EventSender::view() { 2797 blink::WebView* EventSender::view() {
2796 return web_test_proxy_base_->web_view(); 2798 return web_frame_test_proxy_base_->web_frame()->view();
2799 }
2800
2801 blink::WebWidget* EventSender::widget() {
2802 if (web_frame_test_proxy_base_->web_frame())
2803 return web_frame_test_proxy_base_->web_frame()->localRoot()->frameWidget();
2804 return nullptr;
2797 } 2805 }
2798 2806
2799 } // namespace test_runner 2807 } // namespace test_runner
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698