[webkit-dev] assumption about point packing in multit-touch tests

Simon Hausmann simon.hausmann at nokia.com
Thu Jul 19 01:28:00 PDT 2012


On Wednesday, July 18, 2012 12:53:35 PM ext Benjamin Poulain wrote:
> On Wed, Jul 18, 2012 at 8:59 AM, Tomeu Vizoso <tomeu at tomeuvizoso.net> wrote:
> > Though the W3C spec allows packing more than one touch point update in
> > a single touch event, it says nothing about how these updates should
> > be packed, so I think that the current tests are too restrictive and
> > should be relaxed to stop assuming anything about how the updates are
> > packed into events.
> 
> In practice, every port does the exact same thing for the delivery of
> touch events. It is also what the Web content expects nowadays.

I think it would be better if it were _allowed_ if the platform delivered 
multiple touch events for individual touch point updates. I mean in some way 
it is in fact up to the user to the extend that if my mind wants to move two 
fingers simultaenously it might just happen that one finger moves first and only 
a few milliseconds later the second finger starts moving.

Nevertheless I agree that the tests are good that way because they do require 
the platform to at least _support_ multiple updates in one event.

On a low level that requirement is satisfied by Cocoa touch events, WM_TOUCH on 
Windows and even the Linux kernel supports it, from the kernel protocol up to 
protocols like wayland with a specific touch_frame event to indicate the end of 
a contact point list update with multiple points. It seems it's only XInput 
that stands out, and Qt for example covers it up again by just remembering the 
state of the other touch points. But since there is no notion that indicates 
the end of an multi point touch update, we end up with multiple touch events.

> It looks like this spec needs an update, not the WebKit tests.

I don't think the spec should be changed so that XInput based platforms cannot 
satisfy the spec requirements. But I agree that the tests are good the way 
they are because they enforce the requirement to at least possibly support 
multiple updates in one event.

Another argument for keeping the current behaviour in the tests is that the 
JavaScript API (initTouchEvent) takes a touch _list_, and theoretically JS 
could send a (synthetic) touch even that way. It would be wrong to split that 
event up into multiple events with one per changed touch point. So I think 
it's only fair to require the platform to at least support the same semantics.


Simon


More information about the webkit-dev mailing list