Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 121313328dfba8f9279935249fb39997d131e31e
      
https://github.com/WebKit/WebKit/commit/121313328dfba8f9279935249fb39997d131e31e
  Author: Fujii Hironori <[email protected]>
  Date:   2026-09-30 (Wed, 30 Sep 2026)

  Changed paths:
    A LayoutTests/fast/events/touch/coalesced-multi-touch-moves-expected.txt
    A LayoutTests/fast/events/touch/coalesced-multi-touch-moves.html
    M LayoutTests/platform/wpe-legacy-api/TestExpectations
    M Source/WebKit/Shared/WebTouchEvent.cpp
    M Source/WebKit/Shared/WebTouchEvent.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  REGRESSION(319347@main): [GTK][WPE] multi touch move events are choppy
https://bugs.webkit.org/show_bug.cgi?id=324144

Reviewed by Nikolas Zimmermann.

319347@main coalesced touch moves in the UI process by keeping the queued
touch move and deferring the incoming ones, which are never sent to the web
process. So the page only got the oldest touch move of a burst, with stale
positions.

GTK and WPE send one touch event per moved finger, marking only that touch
point as Moved and the others as Stationary. Keeping the oldest event thus also
dropped the movement of the other fingers from TouchEvent.changedTouches,
making multi touch moves choppy.

Coalesce the other way round: the incoming touch move replaces the queued one,
and inherits the Moved state of its touch points. The first queued event is
already in flight, so it is never replaced. The replaced events are older than
the sent one, so report them to the page client first.

The iOS port doesn't need to merge the Moved state. It doesn't use this code
path and coalesces touch moves in the web process instead, and each of its touch
events carries all the touch points with their up-to-date phases. So dropping an
older touch move there only drops intermediate positions.

Test: fast/events/touch/coalesced-multi-touch-moves.html

* LayoutTests/fast/events/touch/coalesced-multi-touch-moves-expected.txt: Added.
* LayoutTests/fast/events/touch/coalesced-multi-touch-moves.html: Added.
* LayoutTests/platform/wpe-legacy-api/TestExpectations:
* Source/WebKit/Shared/WebTouchEvent.cpp:
(WebKit::WebTouchEvent::mergeMovedTouchPointsFrom):
* Source/WebKit/Shared/WebTouchEvent.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processNextQueuedTouchEvent):
(WebKit::WebPageProxy::handleTouchEvent):

Canonical link: https://commits.webkit.org/322268@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to