New issue
Advanced search Search tips

Issue 611981 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Launch-OWP
Launch-Accessibility: ----
Launch-Exp-Leadership: ----
Launch-Leadership: ----
Launch-Legal: ----
Launch-M-Approved: ----
Launch-M-Target: ----
Launch-Privacy: ----
Launch-Security: ----
Launch-Test: ----
Launch-UI: ----
Rollout-Type: ----

Blocked on:
issue 582140
issue 654978

Blocking:
issue 572319
issue 663608
issue 677112
issue 678353
issue 689172
issue 714156
issue 743315



Sign in to add a comment

Touch scrolls should never have a user gesture

Project Member Reported by rbyers@chromium.org, May 14 2016

Issue description

One problem with the design from  issue 582140  is that it makes it impossible to have a "lightswitch" style UI in a cross-origin iframe, and it's potentially confusing that this behavior differs based on the presence/type of iframe.

After discussion (https://groups.google.com/a/chromium.org/forum/#!topic/input-dev/kVjCq9PtGgI) we want to explore changing the intervention to consistently take a user gesture only on touchend that isn't part of a touch scroll (and never on touchstart/touchmove).

I'll try to get some UMA metrics for this into M-52, for launch consideration in M-53.
 

Comment 1 by rbyers@chromium.org, May 14 2016

Labels: Hotlist-Input-Dev

Comment 2 by rbyers@chromium.org, May 14 2016

Blocking: 572319

Comment 3 by rbyers@chromium.org, May 19 2016

Labels: -M-53 M-54
Project Member

Comment 5 by bugdroid1@chromium.org, May 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/adbb8a0133bf42306ac4a533a5478529e5d87895

commit adbb8a0133bf42306ac4a533a5478529e5d87895
Author: rbyers <rbyers@chromium.org>
Date: Thu May 26 17:33:05 2016

Deprecate use of user gestures during scroll-related touch events

See https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZu7nvOg/edit#heading=h.qq59ev3u8fba

Intent to deprecate: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/2cvwbgZOZZs

This also contains a small tweak to the semantics of the TouchScrollStarted event to trigger it only on the first GestureScrollUpdate (so that it's not triggered when the page consumes all touchmove events).

BUG= 611981 

Review-Url: https://codereview.chromium.org/1996143002
Cr-Commit-Position: refs/heads/master@{#396215}

[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/content/browser/renderer_host/input/input_router_impl.h
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/LayoutTests/fast/events/touch/resources/touch-stale-node-crash.js
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/LayoutTests/fast/events/touch/touch-user-gesture-expected.txt
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/input/EventHandler.h
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/input/PointerEventManager.cpp
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/input/TouchEventManager.cpp
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/third_party/WebKit/Source/core/input/TouchEventManager.h
[modify] https://crrev.com/adbb8a0133bf42306ac4a533a5478529e5d87895/tools/metrics/histograms/histograms.xml

Comment 6 by rbyers@chromium.org, May 27 2016

Labels: Merge-Request-52
Merge-request: I'd like to merge the metrics (adbb8a0133bf42306ac4a533a5478529e5d87895) back to the M52 branch so that we can get the data in time to (potentially) make this change by M54.

Comment 7 by tin...@google.com, May 27 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Please have a the CL merged by EOD today(05/27), so it gets tested for dev channel release scheduled on 06/02.
Project Member

Comment 9 by bugdroid1@chromium.org, May 30 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/34f0006c461c94b01317c5521140f995cec1badc

commit 34f0006c461c94b01317c5521140f995cec1badc
Author: Rick Byers <rbyers@chromium.org>
Date: Mon May 30 16:04:05 2016

Deprecate use of user gestures during scroll-related touch events

See https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZu7nvOg/edit#heading=h.qq59ev3u8fba

Intent to deprecate: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/2cvwbgZOZZs

This also contains a small tweak to the semantics of the TouchScrollStarted event to trigger it only on the first GestureScrollUpdate (so that it's not triggered when the page consumes all touchmove events).

BUG= 611981 

Review-Url: https://codereview.chromium.org/1996143002
Cr-Commit-Position: refs/heads/master@{#396215}
(cherry picked from commit adbb8a0133bf42306ac4a533a5478529e5d87895)

Review URL: https://codereview.chromium.org/2027473002 .

Cr-Commit-Position: refs/branch-heads/2743@{#127}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/content/browser/renderer_host/input/input_router_impl.h
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/LayoutTests/fast/events/touch/resources/touch-stale-node-crash.js
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/LayoutTests/fast/events/touch/touch-user-gesture-expected.txt
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/input/EventHandler.h
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/input/PointerEventManager.cpp
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/input/TouchEventManager.cpp
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/third_party/WebKit/Source/core/input/TouchEventManager.h
[modify] https://crrev.com/34f0006c461c94b01317c5521140f995cec1badc/tools/metrics/histograms/histograms.xml

> Please have a the CL merged by EOD today(05/27), so it gets tested for dev channel release scheduled on 06/02.

Sorry I didn't see that note over the weekend (it was sent after EOD in my timezone).  Now merged.
Thanks for the merge, the CL will be picked up for the next Dev release.
Blocking: 386378
Blocking: -386378
Blocking: 386378
Cc: rbyers@chromium.org jsc...@chromium.org
 Issue 386378  has been merged into this issue.
Blocking: -386378
Labels: -M-54 M-55
Punting to M55
Labels: -M-55 M-56
Can't keep punting this - will aim to either make this change in M56 or learn why we can't do it and back out the deprecation.
Blockedon: 654978
Status: Started (was: Assigned)
Intent to remove: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/TO_x7FRkdmw
#20: Yes I think so, working on landing the CL now -  issue 611981 
Project Member

Comment 22 by bugdroid1@chromium.org, Nov 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/60b7754704a8fd81b0a010ce253b3754e72c50ec

commit 60b7754704a8fd81b0a010ce253b3754e72c50ec
Author: rbyers <rbyers@chromium.org>
Date: Mon Nov 07 18:55:10 2016

Remove UserGesture on touch scrolls

The only type of touch which now takes a user gesture is touchend/pointerup
when it doesn't correspond to a touch scroll.  Conceptually scrolling
consume's the user's intent - no sensitive action should be triggered for
the same gesture that does a scroll.  For details see:
https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZu7nvOg/edit

Intent to remove: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/gesture%7Csort:relevance/blink-dev/TO_x7FRkdmw/uCrOwufTCAAJ

BUG= 611981 

Review-Url: https://codereview.chromium.org/2414273003
Cr-Commit-Position: refs/heads/master@{#430330}

[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_image_onload.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_user_gesture.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_user_gesture_to_iframe_page.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_xhr_callback.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_xhr_callback_and_long_timeout.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/chrome/test/data/navigation_interception/navigation_from_xhr_callback_and_short_timeout.html
[delete] https://crrev.com/f090634ed051ff41e33908609072509ad311c2d8/third_party/WebKit/LayoutTests/fast/events/touch/resources/touch-user-gesture-frame.html
[delete] https://crrev.com/f090634ed051ff41e33908609072509ad311c2d8/third_party/WebKit/LayoutTests/fast/events/touch/touch-user-gesture-cross-origin.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/LayoutTests/fast/events/touch/touch-user-gesture-expected.txt
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/LayoutTests/fast/events/touch/touch-user-gesture.html
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/input/PointerEventManager.cpp
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/input/PointerEventManager.h
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/input/TouchEventManager.cpp
[modify] https://crrev.com/60b7754704a8fd81b0a010ce253b3754e72c50ec/third_party/WebKit/Source/core/input/TouchEventManager.h

Labels: -Hotlist-Merge-Approved -merge-merged-2743
Created dedicated chromestatus entry here: https://www.chromestatus.com/feature/6131337345892352
Blocking: 663608
Status: Fixed (was: Started)
Did some more manual testing using official Chrome Android canary 56.0.2913.4 on https://output.jsbin.com/valubo.  Seems to be working as intended.  In particular:
 - touchstart and touchmove case never open a pop-up (always show pop-up blocker)
 - touchend cases open a pop-up only when the user didn't scroll (which isn't possible in the last two cases).
Blocking: 677112
Blocking: 678353
Blocking: 689172
Blocking: 714156
Blocking: 743315

Sign in to add a comment