webdriver: Enable pointerMove to perform smooth transition over specified duration#42946
webdriver: Enable pointerMove to perform smooth transition over specified duration#42946yezhizhen merged 5 commits intoservo:mainfrom
pointerMove to perform smooth transition over specified duration#42946Conversation
Signed-off-by: Euclid Ye <[email protected]>
Signed-off-by: Euclid Ye <[email protected]>
Signed-off-by: Euclid Ye <[email protected]>
This comment was marked as outdated.
This comment was marked as outdated.
pointerMove to perform smooth transition over specified duration
|
Adding a test. We can assert more than 10 mousemove, with changing coordinates. |
|
🤖 Opened new upstream WPT pull request (web-platform-tests/wpt#58169) with upstreamable changes. |
Signed-off-by: Euclid Ye <[email protected]>
51d6993 to
d0e2e19
Compare
Signed-off-by: Euclid Ye <[email protected]>
|
📝 Transplanted new upstreamable changes to existing upstream WPT pull request (web-platform-tests/wpt#58169). |
1 similar comment
|
📝 Transplanted new upstreamable changes to existing upstream WPT pull request (web-platform-tests/wpt#58169). |
|
✍ Updated existing upstream WPT pull request (web-platform-tests/wpt#58169) title and body. |
2 similar comments
|
✍ Updated existing upstream WPT pull request (web-platform-tests/wpt#58169) title and body. |
|
✍ Updated existing upstream WPT pull request (web-platform-tests/wpt#58169) title and body. |
|
Reported bug: SeleniumHQ/selenium#12736 Interesting. It seems chromedriver/safaridriver is not spec-compliant, and also blinks. They both only get 2 |
mrobinson
left a comment
There was a problem hiding this comment.
Seems reasonable to me, but I'll wait for the resolution of the issue with the test.
| // asynchronously wait for an implementation defined amount of time to pass. | ||
|
|
||
| // Asynchronously wait means do not block browser to process event loop. | ||
| // In the context of Servo, it means block the webdriver server thread. |
There was a problem hiding this comment.
Should this say:
| // In the context of Servo, it means block the webdriver server thread. | |
| // In the context of Servo, it means not blocking the webdriver server thread. |
?
There was a problem hiding this comment.
No. That's why we sleep the server thread right below.
| // asynchronously wait for an implementation defined amount of time to pass. | ||
|
|
||
| // Asynchronously wait means do not block browser to process event loop. | ||
| // In the context of Servo, it means block the webdriver server thread. |
There was a problem hiding this comment.
| // In the context of Servo, it means block the webdriver server thread. | |
| // In the context of Servo, it means blocking the webdriver server thread. |
I don't know who we can find to resolve this. The test seems fairly straightforward :( |
Scroll and PointerMove is quite similar. We did so for `PointeMove` in #42289 + #42946. Imagine having 3 non-zero duration scroll actions with origin at different Elements. Previously we would wait for one to be fully dispatched before moving to next action, instead of interspersed. We also consolidate `PendingPointerMove` and newly added `PendingScroll` into `enum PendingActions`. Testing: [Existing tests behaviour not changing.](https://github.com/servo/servo/actions/runs/22887005716). Added a wdspec test. Previously: `['wheel', 'wheel', 'wheel', 'wheel', 'wheel', 'wheel', 'wheel', 'wheel', 'wheel', 'move']` Now: `['wheel', 'move', 'wheel', 'move', 'wheel', 'move', 'move', 'wheel', 'wheel', 'move', 'move', 'wheel', 'wheel', 'move', 'move', 'wheel']` --------- Signed-off-by: Euclid Ye <[email protected]>
Enable
pointerMoveto perform a smooth transition over specified duration.servo/tests/wpt/tests/resources/testdriver-actions.js
Lines 34 to 38 in a60a8b1
before-fix.mp4
post-fix.mp4
Testing: Added a WPT test. I'm surprised it is not covered by existing tests, given the huge behaviour difference.
Fixes: #42950
Part of #41620