New issue
Advanced search Search tips

Issue 787615 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 469947
Owner: ----
Closed: Jan 18
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Synthetic pinch-zoom gestures don't zoom to requested scale on desktop

Project Member Reported by bokan@chromium.org, Nov 21 2017

Issue description

Chrome Version       : 62.0.3202.94

While writing new pinch gesture synthesizer unit tests in catapult/telemetry/telemetry/internal/actions I noticed that calling (for example):

i = pinch.PinchAction(
      scale_factor=4,
      speed_in_pixels_per_second=500)

Works (for the most part) as expected on Android but causes a page on Linux to zoom into to only about 1.5 scale. I've disabled these tests on desktops for now.
 

Comment 1 by mcnee@chromium.org, May 14 2018

So I have a CL which fixes synthetic pinch gestures for touchpad: https://chromium-review.googlesource.com/c/chromium/src/+/1026035

While I'm in the area, I thought I'd take a quick look at the touchscreen gestures. The issue appears to be in SyntheticTouchscreenPinchGesture::SetupCoordinatesAndStopTime where we use the min span and touch slop in order to set the initial and final distances. The values we get don't match what's being used in ScaleGestureDetector. If I use the same values in SetupCoordinatesAndStopTime and then divide touch slop by 2 to get its distance to the anchor, that appears to produce the correct scale from the touchscreen pinch. However, even though the scale is correct, there still seems to be issues with the final offset.
Project Member

Comment 2 by bugdroid1@chromium.org, May 15 2018

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

commit 202183d097a49169f357e3d843f0878e1e1aa3ae
Author: Kevin McNee <mcnee@chromium.org>
Date: Tue May 15 23:52:36 2018

Have gesture pinch layout tests use a compositor

As part of  issue 787924 , we will no longer handle gesture pinch events
on the main thread. We now run the relevant layout tests with
--enable-threaded-compositing

Bug:  787924 ,  787615 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I818a8eef8ada92bc4ba9c297f2165cf906e00c2f
Reviewed-on: https://chromium-review.googlesource.com/1026035
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Robert Ma <robertma@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558889}
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_aura.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_base.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_mac.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/render_widget_host_ns_view_client.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/render_widget_host_view_cocoa.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/render_widget_host_view_cocoa.mm
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/content/renderer/gpu/gpu_benchmarking_extension.cc
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/LeakExpectations
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/SmokeTests
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/VirtualTestSuites
[modify] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel-expected.txt
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel.html
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-expected.txt
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble-expected.txt
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble.html
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-fake-mouse-wheel.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html
[rename] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/resources/wait-for-compositor-commit.js
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-in-slow.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-out-slow.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.css
[delete] https://crrev.com/af5173b23c6bc2a60ca85ddfcc41381fdfa16608/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.html
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.js
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/README.txt
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pointerevents/pinch/README.txt
[add] https://crrev.com/202183d097a49169f357e3d843f0878e1e1aa3ae/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/README.txt

Project Member

Comment 3 by bugdroid1@chromium.org, May 18 2018

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

commit 8ee07434f3312777b8c2b13c0f19146c74c49d62
Author: David Bokan <bokan@chromium.org>
Date: Fri May 18 19:09:05 2018

Use correct config for synthetic Aura pinch-zoom

The values being used in the synthetic gesture target for aura differed
for where they're being read from in the scale gesture detector. This
patch fixes MinScalingSpan to read the correct value and adds a new
method for the span slop, rather than trying to reuse the touch slop.

This fixes the issues in how much scaling is produced, however, the
offset is still broken. I've added new tests that are highly forgiving
on the offset assertions so that we can prevent regressing this further
while the precise tests are disabled on desktop.

Bug:  787615 
Change-Id: I50c4c8a2ac6d250c5c2db9a4a14a4059a8db0df6
Reviewed-on: https://chromium-review.googlesource.com/1064001
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559981}
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_target.h
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_target_aura.h
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_gesture_target_base.h
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-desktop.html
[add] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow-desktop.html
[add] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow-desktop.html
[modify] https://crrev.com/8ee07434f3312777b8c2b13c0f19146c74c49d62/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.js

Comment 4 by benhenry@google.com, Jan 16 (6 days ago)

Components: Test>Telemetry

Comment 5 by benhenry@google.com, Jan 16 (6 days ago)

Components: -Speed>Telemetry

Comment 6 by wjmaclean@chromium.org, Jan 18 (4 days ago)

Mergedinto: 469947
Status: Duplicate (was: Available)
Project Member

Comment 7 by bugdroid1@chromium.org, Yesterday (47 hours ago)

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

commit 08aed290f42041ab29fc82ef6e127c33e2871b47
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Jan 21 18:02:07 2019

Address flaky desktop touchscreen synthetic pinch zoom gesture tests

The lenient versions of these tests were missing a call to
waitForCompositorCommit after the gesture which the full versions of
the tests have.

We also clean up the TestExpectations for these synthetic_gestures tests
as some of the entries appear to no longer be an issue.

Bug: 922508,  787615 , 891427, 882975
Change-Id: Idf084b3651e74bbbfc337a73ba8223aa8db8d3a3
Reviewed-on: https://chromium-review.googlesource.com/c/1418522
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624613}
[modify] https://crrev.com/08aed290f42041ab29fc82ef6e127c33e2871b47/third_party/blink/web_tests/TestExpectations
[modify] https://crrev.com/08aed290f42041ab29fc82ef6e127c33e2871b47/third_party/blink/web_tests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture.js

Sign in to add a comment