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

Side by Side Diff: content/shell/renderer/test_runner/event_sender.cc

Issue 902173003: EventSender::GestureFlingStart takes a source_device. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Throw on invalid source device. Created 5 years, 10 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
« no previous file with comments | « content/shell/renderer/test_runner/event_sender.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "content/shell/renderer/test_runner/event_sender.h" 5 #include "content/shell/renderer/test_runner/event_sender.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 bool IsSystemKeyEvent(const WebKeyboardEvent& event) { 340 bool IsSystemKeyEvent(const WebKeyboardEvent& event) {
341 #if defined(OS_MACOSX) 341 #if defined(OS_MACOSX)
342 return event.modifiers & WebInputEvent::MetaKey && 342 return event.modifiers & WebInputEvent::MetaKey &&
343 event.windowsKeyCode != ui::VKEY_B && 343 event.windowsKeyCode != ui::VKEY_B &&
344 event.windowsKeyCode != ui::VKEY_I; 344 event.windowsKeyCode != ui::VKEY_I;
345 #else 345 #else
346 return !!(event.modifiers & WebInputEvent::AltKey); 346 return !!(event.modifiers & WebInputEvent::AltKey);
347 #endif 347 #endif
348 } 348 }
349 349
350 const char* kSourceDeviceStringTouchpad = "touchpad";
351 const char* kSourceDeviceStringTouchscreen = "touchscreen";
352
350 } // namespace 353 } // namespace
351 354
352 class EventSenderBindings : public gin::Wrappable<EventSenderBindings> { 355 class EventSenderBindings : public gin::Wrappable<EventSenderBindings> {
353 public: 356 public:
354 static gin::WrapperInfo kWrapperInfo; 357 static gin::WrapperInfo kWrapperInfo;
355 358
356 static void Install(base::WeakPtr<EventSender> sender, 359 static void Install(base::WeakPtr<EventSender> sender,
357 blink::WebFrame* frame); 360 blink::WebFrame* frame);
358 361
359 private: 362 private:
(...skipping 17 matching lines...) Expand all
377 void SetPageScaleFactor(gin::Arguments* args); 380 void SetPageScaleFactor(gin::Arguments* args);
378 void SetPageScaleFactorLimits(gin::Arguments* args); 381 void SetPageScaleFactorLimits(gin::Arguments* args);
379 void ClearTouchPoints(); 382 void ClearTouchPoints();
380 void ReleaseTouchPoint(unsigned index); 383 void ReleaseTouchPoint(unsigned index);
381 void UpdateTouchPoint(unsigned index, double x, double y); 384 void UpdateTouchPoint(unsigned index, double x, double y);
382 void CancelTouchPoint(unsigned index); 385 void CancelTouchPoint(unsigned index);
383 void SetTouchModifier(const std::string& key_name, bool set_mask); 386 void SetTouchModifier(const std::string& key_name, bool set_mask);
384 void SetTouchCancelable(bool cancelable); 387 void SetTouchCancelable(bool cancelable);
385 void DumpFilenameBeingDragged(); 388 void DumpFilenameBeingDragged();
386 void GestureFlingCancel(); 389 void GestureFlingCancel();
387 void GestureFlingStart(float x, float y, float velocity_x, float velocity_y); 390 void GestureFlingStart(float x,
391 float y,
392 float velocity_x,
393 float velocity_y,
394 gin::Arguments* args);
388 void GestureScrollFirstPoint(int x, int y); 395 void GestureScrollFirstPoint(int x, int y);
389 void TouchStart(); 396 void TouchStart();
390 void TouchMove(); 397 void TouchMove();
391 void TouchCancel(); 398 void TouchCancel();
392 void TouchEnd(); 399 void TouchEnd();
393 void LeapForward(int milliseconds); 400 void LeapForward(int milliseconds);
394 void BeginDragWithFiles(const std::vector<std::string>& files); 401 void BeginDragWithFiles(const std::vector<std::string>& files);
395 void AddTouchPoint(gin::Arguments* args); 402 void AddTouchPoint(gin::Arguments* args);
396 void MouseDragBegin(); 403 void MouseDragBegin();
397 void MouseDragEnd(); 404 void MouseDragEnd();
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 } 722 }
716 723
717 void EventSenderBindings::GestureFlingCancel() { 724 void EventSenderBindings::GestureFlingCancel() {
718 if (sender_) 725 if (sender_)
719 sender_->GestureFlingCancel(); 726 sender_->GestureFlingCancel();
720 } 727 }
721 728
722 void EventSenderBindings::GestureFlingStart(float x, 729 void EventSenderBindings::GestureFlingStart(float x,
723 float y, 730 float y,
724 float velocity_x, 731 float velocity_x,
725 float velocity_y) { 732 float velocity_y,
733 gin::Arguments* args) {
726 if (sender_) 734 if (sender_)
727 sender_->GestureFlingStart(x, y, velocity_x, velocity_y); 735 sender_->GestureFlingStart(x, y, velocity_x, velocity_y, args);
728 } 736 }
729 737
730 void EventSenderBindings::GestureScrollFirstPoint(int x, int y) { 738 void EventSenderBindings::GestureScrollFirstPoint(int x, int y) {
731 if (sender_) 739 if (sender_)
732 sender_->GestureScrollFirstPoint(x, y); 740 sender_->GestureScrollFirstPoint(x, y);
733 } 741 }
734 742
735 void EventSenderBindings::TouchStart() { 743 void EventSenderBindings::TouchStart() {
736 if (sender_) 744 if (sender_)
737 sender_->TouchStart(); 745 sender_->TouchStart();
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 event.type = WebInputEvent::GestureFlingCancel; 1647 event.type = WebInputEvent::GestureFlingCancel;
1640 event.timeStampSeconds = GetCurrentEventTimeSec(); 1648 event.timeStampSeconds = GetCurrentEventTimeSec();
1641 1649
1642 if (force_layout_on_events_) 1650 if (force_layout_on_events_)
1643 view_->layout(); 1651 view_->layout();
1644 1652
1645 HandleInputEventOnViewOrPopup(event); 1653 HandleInputEventOnViewOrPopup(event);
1646 } 1654 }
1647 1655
1648 void EventSender::GestureFlingStart(float x, 1656 void EventSender::GestureFlingStart(float x,
1649 float y, 1657 float y,
1650 float velocity_x, 1658 float velocity_x,
1651 float velocity_y) { 1659 float velocity_y,
1660 gin::Arguments* args) {
1652 WebGestureEvent event; 1661 WebGestureEvent event;
1653 event.type = WebInputEvent::GestureFlingStart; 1662 event.type = WebInputEvent::GestureFlingStart;
1654 1663
1664 // TODO(tdresser): Once we've migrated all calls to GestureFlingStart
1665 // to pass the device string, throw an error if args is empty. See
1666 // crbug.com/456136 for details.
1667 std::string device_string = kSourceDeviceStringTouchpad;
1668 if (!args->PeekNext().IsEmpty() && args->PeekNext()->IsString()) {
1669 if (!args->GetNext(&device_string)) {
1670 args->ThrowError();
1671 return;
1672 }
1673 }
1674
1675 if (device_string == kSourceDeviceStringTouchpad) {
1676 event.sourceDevice = blink::WebGestureDeviceTouchpad;
1677 } else if (device_string == kSourceDeviceStringTouchscreen) {
1678 event.sourceDevice = blink::WebGestureDeviceTouchscreen;
1679 } else {
1680 args->ThrowError();
1681 return;
1682 }
1683
1655 event.x = x; 1684 event.x = x;
1656 event.y = y; 1685 event.y = y;
1657 event.globalX = event.x; 1686 event.globalX = event.x;
1658 event.globalY = event.y; 1687 event.globalY = event.y;
1659 1688
1660 event.data.flingStart.velocityX = velocity_x; 1689 event.data.flingStart.velocityX = velocity_x;
1661 event.data.flingStart.velocityY = velocity_y; 1690 event.data.flingStart.velocityY = velocity_y;
1662 event.timeStampSeconds = GetCurrentEventTimeSec(); 1691 event.timeStampSeconds = GetCurrentEventTimeSec();
1663 1692
1664 if (force_layout_on_events_) 1693 if (force_layout_on_events_)
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
2030 // If the first argument is a string, it is to specify the device, otherwise 2059 // If the first argument is a string, it is to specify the device, otherwise
2031 // the device is assumed to be a touchscreen (since most tests were written 2060 // the device is assumed to be a touchscreen (since most tests were written
2032 // assuming this). 2061 // assuming this).
2033 event.sourceDevice = blink::WebGestureDeviceTouchscreen; 2062 event.sourceDevice = blink::WebGestureDeviceTouchscreen;
2034 if (args->PeekNext()->IsString()) { 2063 if (args->PeekNext()->IsString()) {
2035 std::string device_string; 2064 std::string device_string;
2036 if (!args->GetNext(&device_string)) { 2065 if (!args->GetNext(&device_string)) {
2037 args->ThrowError(); 2066 args->ThrowError();
2038 return; 2067 return;
2039 } 2068 }
2040 if (device_string == "touchpad") { 2069 if (device_string == kSourceDeviceStringTouchpad) {
2041 event.sourceDevice = blink::WebGestureDeviceTouchpad; 2070 event.sourceDevice = blink::WebGestureDeviceTouchpad;
2042 } else if (device_string == "touchscreen") { 2071 } else if (device_string == kSourceDeviceStringTouchscreen) {
2043 event.sourceDevice = blink::WebGestureDeviceTouchscreen; 2072 event.sourceDevice = blink::WebGestureDeviceTouchscreen;
2044 } else { 2073 } else {
2045 args->ThrowError(); 2074 args->ThrowError();
2046 return; 2075 return;
2047 } 2076 }
2048 } 2077 }
2049 2078
2050 double x; 2079 double x;
2051 double y; 2080 double y;
2052 if (!args->GetNext(&x) || !args->GetNext(&y)) { 2081 if (!args->GetNext(&x) || !args->GetNext(&y)) {
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
2459 2488
2460 bool EventSender::HandleInputEventOnViewOrPopup(const WebInputEvent& event) { 2489 bool EventSender::HandleInputEventOnViewOrPopup(const WebInputEvent& event) {
2461 if (WebPagePopup* popup = view_->pagePopup()) { 2490 if (WebPagePopup* popup = view_->pagePopup()) {
2462 if (!WebInputEvent::isKeyboardEventType(event.type)) 2491 if (!WebInputEvent::isKeyboardEventType(event.type))
2463 return popup->handleInputEvent(event); 2492 return popup->handleInputEvent(event);
2464 } 2493 }
2465 return view_->handleInputEvent(event); 2494 return view_->handleInputEvent(event);
2466 } 2495 }
2467 2496
2468 } // namespace content 2497 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/event_sender.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698