[iPad apps on macOS] Click events are broken in WKWebView
authorwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Jun 2018 18:43:07 +0000 (18:43 +0000)
committerwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Jun 2018 18:43:07 +0000 (18:43 +0000)
commit7f07ee92da6592baa205b7cd44e1a00c85ebe647
tree3e0dbac684765373b4c858916131e12f70c165a0
parent160d19f451b26cbbcc62cb845354a483fabeb40b
[iPad apps on macOS] Click events are broken in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=186964
<rdar://problem/41369145>

Reviewed by Tim Horton.

Tapping in WKWebView currently does not dispatch click events to the page. This is because the long press loupe
gesture (in the text interaction assistant) has a delay of 0 when running iOS apps on macOS, but on iOS, it's
0.5. The zero delay on macOS means that the loupe gesture will be recognized before the synthetic click gesture;
this, in turn, causes the synthetic click gesture to be excluded by the loupe gesture. To address this, we
simply allow the click and loupe gesture to recognize simultaneously.

Additionally, a new hover gesture was added recently to handle macOS cursor types when hovering over selectable
text. This patch also allows other gestures to recognize alongside hover gestures, which matches macOS behavior.

We don't have the capacity to write automated tests for this yet; I manually tested text selection, editing in
some text form controls, as well as clicking on links, buttons, and other elements with click event handlers.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233159 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm