[webkit-changes] [WebKit/WebKit] 6115b3: The second pointerdown/touchstart event is missing...

Richard Robinson noreply at github.com
Fri Nov 4 20:34:24 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6115b3860098606a435a3cd00b7a6f48662b0617
      https://github.com/WebKit/WebKit/commit/6115b3860098606a435a3cd00b7a6f48662b0617
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2022-11-04 (Fri, 04 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

  Log Message:
  -----------
  The second pointerdown/touchstart event is missing on double-tap gesture
https://bugs.webkit.org/show_bug.cgi?id=246313
rdar://101273397

Reviewed by Wenson Hsieh.

On iOS, `WKContentViewInteraction` has a gesture recognizer of type `WKHighlightLongPressGestureRecognizer`.
In Safari, this recognizer is disabled because of the condition `!self._shouldUseContextMenus || !self.webView.allowsLinkPreview`,
which is `false` in Safari.

However, when adding a site to the Home Screen and launching it from there, this condition is true, causing
the recognizer to participate in the WKContentView's gesture recognizer graph. This causes a failure
Dependency between the recognizer and the touchstart deferring gesture recognizer for "immediately
resettable" gestures, and so double tapping an element only results in a single touchstart event triggered.

This PR fixes this by adding the gesture recognizer to the set of recognizers which may delay a reset,
which fixes the dependency graph.

No new tests, as the issue has been difficult to reproduce in WebKitTestRunner.
This is tracked in https://bugs.webkit.org/show_bug.cgi?id=246313.

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

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




More information about the webkit-changes mailing list