The specification of the MouseEvent.movementX/Y properties says that > All motion data must be delivered via mousemove events such that between any two mouse events earlierEvent and currentEvent the value of currentEvent.screenX-earlierEvent.screenX is equivalent to the sum of all movementX movementY/code> events after earlierEvent, with the exception of when screenX can not be updated because the pointer is clipped by the user agent screen boundaries. (see https://w3c.github.io/pointerlock/#dom-mouseevent-movementx) It works perfectly fine in Chrome but does not seem to work as expected in Safari, as soon as I move the mouse I get differences of several hundreds of pixels. See the following CodePen: https://codepen.io/Latcarf/pen/YzrRvZE Tested with Safari Version 15.1 (15612.2.9.1.30, 15612), on MacOS Catalina version 10.15.7 (19H1615).
<rdar://problem/87773443>
`WebPageProxy::handleMouseEvent` drops unhandled platform mousemove events on macOS if the mouse event queue is too backed up… Maybe that is what's causing this behavior?