Changeset 240460 in webkit


Ignore:
Timestamp:
Jan 24, 2019 5:49:10 PM (5 years ago)
Author:
Fujii Hironori
Message:

[Win][WebKitTestRunner] Implement EventSenderProxy
https://bugs.webkit.org/show_bug.cgi?id=193755

Reviewed by Don Olmstead.

  • WebKitTestRunner/EventSenderProxy.h: Removed unused members m_buttonState and m_mouseButtonsCurrentlyDown.
  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::EventSenderProxy::dispatchMessage):
(WTR::EventSenderProxy::EventSenderProxy):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r240459 r240460  
     12019-01-24  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [Win][WebKitTestRunner] Implement EventSenderProxy
     4        https://bugs.webkit.org/show_bug.cgi?id=193755
     5
     6        Reviewed by Don Olmstead.
     7
     8        * WebKitTestRunner/EventSenderProxy.h: Removed unused members m_buttonState and m_mouseButtonsCurrentlyDown.
     9        * WebKitTestRunner/win/EventSenderProxyWin.cpp:
     10        (WTR::EventSenderProxy::dispatchMessage):
     11        (WTR::EventSenderProxy::EventSenderProxy):
     12        (WTR::EventSenderProxy::mouseDown):
     13        (WTR::EventSenderProxy::mouseUp):
     14        (WTR::EventSenderProxy::mouseMoveTo):
     15        (WTR::EventSenderProxy::mouseScrollBy):
     16        (WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
     17
    1182019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
    219
  • trunk/Tools/WebKitTestRunner/EventSenderProxy.h

    r238098 r240460  
    124124#endif
    125125
     126#if PLATFORM(WIN)
     127    LRESULT dispatchMessage(UINT message, WPARAM, LPARAM);
     128    POINT positionInPoint() const { return { static_cast<LONG>(m_position.x), static_cast<LONG>(m_position.y) }; }
     129#endif
     130
    126131    double m_time;
    127132    WKPoint m_position;
     
    144149    Vector<struct wpe_input_touch_event_raw> m_touchEvents;
    145150    HashSet<unsigned, DefaultHash<unsigned>::Hash, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> m_updatedTouchEvents;
    146 #elif PLATFORM(WIN)
    147     uint32_t m_buttonState;
    148     uint32_t m_mouseButtonsCurrentlyDown { 0 };
    149151#endif
    150152};
  • trunk/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp

    r238098 r240460  
    3434namespace WTR {
    3535
    36 // Key event location code defined in DOM Level 3.
    37 enum KeyLocationCode {
    38     DOMKeyLocationStandard      = 0x00,
    39     DOMKeyLocationLeft          = 0x01,
    40     DOMKeyLocationRight         = 0x02,
    41     DOMKeyLocationNumpad        = 0x03
    42 };
     36LRESULT EventSenderProxy::dispatchMessage(UINT message, WPARAM wParam, LPARAM lParam)
     37{
     38    MSG msg { };
     39    msg.hwnd = WKViewGetWindow(m_testController->mainWebView()->platformView());
     40    msg.message = message;
     41    msg.wParam = wParam;
     42    msg.lParam = lParam;
     43    msg.time = GetTickCount() + static_cast<DWORD>(m_time);
     44    msg.pt = positionInPoint();
    4345
    44 enum ButtonState {
    45     ButtonReleased = 0,
    46     ButtonPressed = 1
    47 };
    48 
    49 enum PointerAxis {
    50     VerticalScroll = 0,
    51     HorizontalScroll = 1
    52 };
     46    TranslateMessage(&msg);
     47    return DispatchMessage(&msg);
     48}
    5349
    5450EventSenderProxy::EventSenderProxy(TestController* testController)
     
    5955    , m_clickTime(0)
    6056    , m_clickButton(kWKEventMouseButtonNoButton)
    61     , m_buttonState(ButtonReleased)
    6257{
    6358}
     
    6964void EventSenderProxy::mouseDown(unsigned button, WKEventModifiers wkModifiers)
    7065{
    71     notImplemented();
     66    int messageType;
     67    switch (button) {
     68    case 0:
     69        messageType = WM_LBUTTONDOWN;
     70        break;
     71    case 1:
     72        messageType = WM_MBUTTONDOWN;
     73        break;
     74    case 2:
     75        messageType = WM_RBUTTONDOWN;
     76        break;
     77    case 3:
     78        // fast/events/mouse-click-events expects the 4th button has event.button = 1, so send an WM_MBUTTONDOWN
     79        messageType = WM_MBUTTONDOWN;
     80        break;
     81    default:
     82        messageType = WM_LBUTTONDOWN;
     83        break;
     84    }
     85    WPARAM wparam = 0;
     86    dispatchMessage(messageType, wparam, MAKELPARAM(positionInPoint().x, positionInPoint().y));
    7287}
    7388
    7489void EventSenderProxy::mouseUp(unsigned button, WKEventModifiers wkModifiers)
    7590{
    76     notImplemented();
     91    int messageType;
     92    switch (button) {
     93    case 0:
     94        messageType = WM_LBUTTONUP;
     95        break;
     96    case 1:
     97        messageType = WM_MBUTTONUP;
     98        break;
     99    case 2:
     100        messageType = WM_RBUTTONUP;
     101        break;
     102    case 3:
     103        // fast/events/mouse-click-events expects the 4th button has event.button = 1, so send an WM_MBUTTONUP
     104        messageType = WM_MBUTTONUP;
     105        break;
     106    default:
     107        messageType = WM_LBUTTONUP;
     108        break;
     109    }
     110    WPARAM wparam = 0;
     111    dispatchMessage(messageType, wparam, MAKELPARAM(positionInPoint().x, positionInPoint().y));
    77112}
    78113
    79114void EventSenderProxy::mouseMoveTo(double x, double y)
    80115{
    81     notImplemented();
     116    m_position.x = x;
     117    m_position.y = y;
     118    dispatchMessage(WM_MOUSEMOVE, 0, MAKELPARAM(positionInPoint().x, positionInPoint().y));
    82119}
    83120
    84 void EventSenderProxy::mouseScrollBy(int horizontal, int vertical)
     121void EventSenderProxy::mouseScrollBy(int x, int y)
    85122{
    86     notImplemented();
     123    RECT rect;
     124    GetWindowRect(WKViewGetWindow(m_testController->mainWebView()->platformView()), &rect);
     125
     126    if (x) {
     127        UINT scrollChars = 1;
     128        SystemParametersInfo(SPI_GETWHEELSCROLLCHARS, 0, &scrollChars, 0);
     129        x *= WHEEL_DELTA / scrollChars;
     130        dispatchMessage(WM_MOUSEHWHEEL, MAKEWPARAM(0, x), MAKELPARAM(rect.left + positionInPoint().x, rect.top + positionInPoint().y));
     131    }
     132
     133    if (y) {
     134        UINT scrollLines = 3;
     135        SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &scrollLines, 0);
     136        y *= WHEEL_DELTA / scrollLines;
     137        dispatchMessage(WM_MOUSEWHEEL, MAKEWPARAM(0, y), MAKELPARAM(rect.left + positionInPoint().x, rect.top + positionInPoint().y));
     138    }
    87139}
    88140
    89 void EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases(int horizontal, int vertical, int, int)
     141void EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases(int, int, int, int)
    90142{
    91143    notImplemented();
Note: See TracChangeset for help on using the changeset viewer.