Bug 175869

Summary: Fallout from making touch events on document/window passive by default
Product: WebKit Reporter: Dean Jackson <dino>
Component: UI EventsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: ap, dave+webkit, john.firebaugh, jonlee, rbyers, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=175346
https://bugs.webkit.org/show_bug.cgi?id=133112

Description Dean Jackson 2017-08-22 19:53:53 PDT
Bug 175346 changed event listeners for touchstart and touchmove on the document (+ body + window + document element) to be passive unless otherwise specified. This bug is going to collect any breakage from that change.

When Chrome made this change they saw a small number of sites break. Usually this appears as double scrolling, or some element moving at a different rate from the rest of the page.

Please note the URL here, and do not revert the original change. We plan to deal with this through evangelism if we can't detect in code.
Comment 1 Radar WebKit Bug Importer 2017-08-22 19:54:25 PDT
<rdar://problem/34027632>
Comment 2 Rick Byers 2017-08-25 07:23:48 PDT
Note that our guidance to affected sites is to rely on CSS touch-action instead of depending on TouchEvent.preventDefault: https://developers.google.com/web/updates/2017/01/scrolling-intervention

Really passive touch listeners are only a reasonable choice when touch-action is fully supported - see https://bugs.webkit.org/show_bug.cgi?id=133112#c2.

Safari is likely to see more web compat problems than Chrome unless/until WebKit gets touch-action support.
Comment 3 Jon Lee 2018-02-20 15:36:46 PST
We haven't seen reports of this.
Comment 4 John Firebaugh 2018-02-26 16:38:27 PST
https://bugs.webkit.org/show_bug.cgi?id=182521
https://github.com/mapbox/mapbox-gl-js/issues/6095

> Safari is likely to see more web compat problems than Chrome unless/until WebKit gets touch-action support.

+1