WebKit Bugzilla
Attachment 359998 Details for
Bug 193755
: [Win][WebKitTestRunner] Implement EventSenderProxy
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193755-20190124181008.patch (text/plain), 6.40 KB, created by
Fujii Hironori
on 2019-01-24 01:10:09 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Fujii Hironori
Created:
2019-01-24 01:10:09 PST
Size:
6.40 KB
patch
obsolete
>Subversion Revision: 240407 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index e15d028766030f666b07d2872d04c560ea5ebc2b..3de289457f32ccd36fce86717f1b961194487bbd 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,20 @@ >+2019-01-24 Fujii Hironori <Hironori.Fujii@sony.com> >+ >+ [Win][WebKitTestRunner] Implement EventSenderProxy >+ https://bugs.webkit.org/show_bug.cgi?id=193755 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * 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): >+ > 2019-01-23 David Kilzer <ddkilzer@apple.com> > > check-webkit-style should warn when using soft-linking macros in a header >diff --git a/Tools/WebKitTestRunner/EventSenderProxy.h b/Tools/WebKitTestRunner/EventSenderProxy.h >index bfdad965b56832dda9bb2fc1a62a11f1ff1373af..5321f173a3a5e1c012e26126cd03bdda7573a4d5 100644 >--- a/Tools/WebKitTestRunner/EventSenderProxy.h >+++ b/Tools/WebKitTestRunner/EventSenderProxy.h >@@ -123,6 +123,11 @@ private: > void prepareAndDispatchTouchEvent(enum wpe_input_touch_event_type); > #endif > >+#if PLATFORM(WIN) >+ LRESULT dispatchMessage(UINT message, WPARAM, LPARAM); >+ POINT positionInPoint() const { return { static_cast<LONG>(m_position.x), static_cast<LONG>(m_position.y) }; } >+#endif >+ > double m_time; > WKPoint m_position; > bool m_leftMouseButtonDown; >@@ -143,9 +148,6 @@ private: > uint32_t m_mouseButtonsCurrentlyDown { 0 }; > Vector<struct wpe_input_touch_event_raw> m_touchEvents; > HashSet<unsigned, DefaultHash<unsigned>::Hash, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> m_updatedTouchEvents; >-#elif PLATFORM(WIN) >- uint32_t m_buttonState; >- uint32_t m_mouseButtonsCurrentlyDown { 0 }; > #endif > }; > >diff --git a/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp b/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp >index 0270929084551ac41f3df6d7bd8b6d361200b522..02e6c256ab6ae27e1eed4564a6e4264efcd55079 100644 >--- a/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp >+++ b/Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp >@@ -33,23 +33,19 @@ > > namespace WTR { > >-// Key event location code defined in DOM Level 3. >-enum KeyLocationCode { >- DOMKeyLocationStandard = 0x00, >- DOMKeyLocationLeft = 0x01, >- DOMKeyLocationRight = 0x02, >- DOMKeyLocationNumpad = 0x03 >-}; >- >-enum ButtonState { >- ButtonReleased = 0, >- ButtonPressed = 1 >-}; >- >-enum PointerAxis { >- VerticalScroll = 0, >- HorizontalScroll = 1 >-}; >+LRESULT EventSenderProxy::dispatchMessage(UINT message, WPARAM wParam, LPARAM lParam) >+{ >+ MSG msg { }; >+ msg.hwnd = WKViewGetWindow(m_testController->mainWebView()->platformView()); >+ msg.message = message; >+ msg.wParam = wParam; >+ msg.lParam = lParam; >+ msg.time = GetTickCount() + static_cast<DWORD>(m_time); >+ msg.pt = positionInPoint(); >+ >+ TranslateMessage(&msg); >+ return DispatchMessage(&msg); >+} > > EventSenderProxy::EventSenderProxy(TestController* testController) > : m_testController(testController) >@@ -58,7 +54,6 @@ EventSenderProxy::EventSenderProxy(TestController* testController) > , m_clickCount(0) > , m_clickTime(0) > , m_clickButton(kWKEventMouseButtonNoButton) >- , m_buttonState(ButtonReleased) > { > } > >@@ -68,25 +63,82 @@ EventSenderProxy::~EventSenderProxy() > > void EventSenderProxy::mouseDown(unsigned button, WKEventModifiers wkModifiers) > { >- notImplemented(); >+ int messageType; >+ switch (button) { >+ case 0: >+ messageType = WM_LBUTTONDOWN; >+ break; >+ case 1: >+ messageType = WM_MBUTTONDOWN; >+ break; >+ case 2: >+ messageType = WM_RBUTTONDOWN; >+ break; >+ case 3: >+ // fast/events/mouse-click-events expects the 4th button has event.button = 1, so send an WM_MBUTTONDOWN >+ messageType = WM_MBUTTONDOWN; >+ break; >+ default: >+ messageType = WM_LBUTTONDOWN; >+ break; >+ } >+ WPARAM wparam = 0; >+ dispatchMessage(messageType, wparam, MAKELPARAM(positionInPoint().x, positionInPoint().y)); > } > > void EventSenderProxy::mouseUp(unsigned button, WKEventModifiers wkModifiers) > { >- notImplemented(); >+ int messageType; >+ switch (button) { >+ case 0: >+ messageType = WM_LBUTTONUP; >+ break; >+ case 1: >+ messageType = WM_MBUTTONUP; >+ break; >+ case 2: >+ messageType = WM_RBUTTONUP; >+ break; >+ case 3: >+ // fast/events/mouse-click-events expects the 4th button has event.button = 1, so send an WM_MBUTTONUP >+ messageType = WM_MBUTTONUP; >+ break; >+ default: >+ messageType = WM_LBUTTONUP; >+ break; >+ } >+ WPARAM wparam = 0; >+ dispatchMessage(messageType, wparam, MAKELPARAM(positionInPoint().x, positionInPoint().y)); > } > > void EventSenderProxy::mouseMoveTo(double x, double y) > { >- notImplemented(); >+ m_position.x = x; >+ m_position.y = y; >+ dispatchMessage(WM_MOUSEMOVE, 0, MAKELPARAM(positionInPoint().x, positionInPoint().y)); > } > >-void EventSenderProxy::mouseScrollBy(int horizontal, int vertical) >+void EventSenderProxy::mouseScrollBy(int x, int y) > { >- notImplemented(); >+ RECT rect; >+ GetWindowRect(WKViewGetWindow(m_testController->mainWebView()->platformView()), &rect); >+ >+ if (x) { >+ UINT scrollChars = 1; >+ SystemParametersInfo(SPI_GETWHEELSCROLLCHARS, 0, &scrollChars, 0); >+ x *= WHEEL_DELTA / scrollChars; >+ dispatchMessage(WM_MOUSEHWHEEL, MAKEWPARAM(0, x), MAKELPARAM(rect.left + positionInPoint().x, rect.top + positionInPoint().y)); >+ } >+ >+ if (y) { >+ UINT scrollLines = 3; >+ SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &scrollLines, 0); >+ y *= WHEEL_DELTA / scrollLines; >+ dispatchMessage(WM_MOUSEWHEEL, MAKEWPARAM(0, y), MAKELPARAM(rect.left + positionInPoint().x, rect.top + positionInPoint().y)); >+ } > } > >-void EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases(int horizontal, int vertical, int, int) >+void EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases(int, int, int, int) > { > notImplemented(); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193755
: 359998