Primary eng (and PM) emails
Link to “Intent to Deprecate” thread
Summary
Only consider a touch event a "user gesture" when it's the touchend associated with a tap.
Motivation
We've seen multiple examples of poorly written / malicious ads which trigger navigation for touch scrolls (either on touchstart or all touchend events). If a 'wheel' event can't open a pop-up, then really touch scrolling shouldn't either. The previous change was the minimal thing necessary to stop the worst cases (cross-origin iframes), but now I'd like to attempt to make this more consistent / more thorough.
Compatibility Risk
Usage information from UseCounter
I've attempted to quantify the risk by measuring when a user gesture is used from within a touchstart, touchmove or (non-tap) touchend handler. Results on Android Stable (as % of PageVisits) are as follows:
TouchStartUserGestureUtilized: 0.16%
TouchMoveUserGestureUtilized: 0.015%
TouchEndDuringScrollUserGestureUtilized: 0.05%
All of these numbers are higher than I hoped and are worrying. I've tried to look at how they could be a measurement error, but haven't come up with anything wrong. Ideally I'd have some way to find specific examples to investigate, but I can't come up with any practical way to find them (hard to simulate real user input, etc.). My gut instinct is that since Mobile Safari already doesn't support these cases, this is going to be a mix of intentional abuse, subtle websites bugs whose impact isn't user visible, and some small amount of real breakage in Chrome-specific code.
After sitting on this for a few months, thinking through different options and talking to a few folks, I think the best path forward is to just try to ship this. The breakage is still bounded to a low number, and Safari compatibility means this is potentially a net predictability improvement. If more than one real-world website is discovered to be broken in a non-trivial way during beta, I'll revert and re-evaluate.
OWP launch tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=611981
Entry on the feature dashboard
https://www.chromestatus.com/features/5649871251963904
Does this break light switch widgets? I totally support not granting a gesture if the page actually scrolled, but if the author has touch-action set and you toggle a switch that should trigger a gesture. If we don't you produce a strange situation where tapping the switch does the action (ex. Plays audio) but sliding it doesn't. It's possible the UX is worse here in Safari, but I don't think we should copy their behavior if it means limiting a popular UX paradigm like this.
Does this break light switch widgets? I totally support not granting a gesture if the page actually scrolled, but if the author has touch-action set and you toggle a switch that should trigger a gesture. If we don't you produce a strange situation where tapping the switch does the action (ex. Plays audio) but sliding it doesn't. It's possible the UX is worse here in Safari, but I don't think we should copy their behavior if it means limiting a popular UX paradigm like this.
On Oct 11, 2016 7:34 PM, "Rick Byers" <rby...@chromium.org> wrote:Primary eng (and PM) emails
Link to “Intent to Deprecate” thread
Summary
Only consider a touch event a "user gesture" when it's the touchend associated with a tap.
Oh great! Glad I was just confused here. :)
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
We've seen multiple examples of poorly written / malicious ads which trigger navigation for touch scrolls (either on touchstart or all touchend events).
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c35dbe55-420b-46df-aa29-a280f4ffe2e3%40chromium.org.