New issue
Advanced search Search tips

Issue 787924 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocked on:
issue 846243

Blocking:
issue 739213



Sign in to add a comment

Move trackpad pinch zoom synthetic wheel event generation out of blink

Project Member Reported by mcnee@chromium.org, Nov 22 2017

Issue description

Currently, when a Mac trackpad pinch occurs, we send the GesturePinchBegin/Update/End sequence to the renderer. If there are wheel listeners, the events are handled on the main thread where we generate a synthetic MouseWheel with the ctrl modifier set for each GesturePinchUpdate. If this mouse wheel is not canceled, we apply the scale change from the pinch.

We should move this out of blink, so that the browser sends the necessary ctrl wheel events to the renderer to determine whether to cancel the pinch. Upon receiving an unconsumed ctrl wheel, the browser can proceed with sending the original gesture pinch events. The idea is similar to how MouseWheelEventQueue works.
 

Comment 1 by mcnee@chromium.org, Nov 22 2017

Blocking: 739213

Comment 2 by mcnee@chromium.org, Jan 25 2018

Status: Started (was: Assigned)

Comment 3 by bokan@chromium.org, Mar 28 2018

Kevin, what's the status on this issue? We're launching trackpad pinch-zoom on Windows and this would be useful to have as we can optimize to prevent going to the main thread all the time.

Comment 4 by mcnee@chromium.org, Mar 29 2018

Hi, sorry, this got bumped while I was looking at OOPIF scrolling issues. Fortunately, I'm back to actively working on this. I have a WIP CL here: https://chromium-review.googlesource.com/c/chromium/src/+/894102 .

The functionality itself is essentially done. It should just be a matter of writing and updating tests. There's also the matter of removing the resulting dead code, but that's probably best done in a follow up CL anyway.

Comment 5 by bokan@chromium.org, Mar 29 2018

Awesome, thanks for the update!
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 5 2018

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

commit fba541aca426329e822e3f1df42ca5f7057b5762
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu Apr 05 14:29:17 2018

Add gesture pinch begin and end events for InputHandlerProxyEventQueueTests

These affected tests process GesturePinchUpdates outside of a
GesturePinchBegin/End pair. We add the missing begin and end events.

Bug:  787924 
Change-Id: Ic087d85b39bb7a39c794c62dea06cba622125a12
Reviewed-on: https://chromium-review.googlesource.com/986540
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548415}
[modify] https://crrev.com/fba541aca426329e822e3f1df42ca5f7057b5762/ui/events/blink/input_handler_proxy_unittest.cc

Project Member

Comment 7 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 8 by bugdroid1@chromium.org, May 17 2018

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

commit 177f6ea9952d0a4c65be251f383a6268c10f2c78
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu May 17 14:12:52 2018

Update gesture-pinch-zoom-prevent-in-handler.html slimming-paint-v2 expectation

As with gesture-pinch-zoom-scroll-bubble.html, it can fail as well as
crash.

Bug:  787924 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ib8adbfaed9a25c49026d1c969f81b49b62c29c14
Reviewed-on: https://chromium-review.googlesource.com/1062214
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559521}
[modify] https://crrev.com/177f6ea9952d0a4c65be251f383a6268c10f2c78/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2

Project Member

Comment 9 by bugdroid1@chromium.org, May 22 2018

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

commit ec54e1ca07094b9b8e737d9e87e72555ef2215b5
Author: Kevin McNee <mcnee@chromium.org>
Date: Tue May 22 23:24:49 2018

Adapt scroll-visual-viewport-send-boundary-events.html to run with a compositor

Since this test uses chrome.gpuBenchmarking.pinchBy, we need to have
it run with a compositor. As part of  issue 787924 , we will no longer
handle gesture pinch events on the main thread.

Bug:  787924 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0127028f246ae72a772ef8c9f163b4403b6c3036
Reviewed-on: https://chromium-review.googlesource.com/1068625
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560831}
[modify] https://crrev.com/ec54e1ca07094b9b8e737d9e87e72555ef2215b5/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/ec54e1ca07094b9b8e737d9e87e72555ef2215b5/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[rename] https://crrev.com/ec54e1ca07094b9b8e737d9e87e72555ef2215b5/third_party/WebKit/LayoutTests/fast/events/pinch/scroll-visual-viewport-send-boundary-events.html

Blockedon: 846243
Project Member

Comment 11 by bugdroid1@chromium.org, May 24 2018

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

commit 1323de0969cbbd35f06c5286cfcdebe76ccfa263
Author: Friedrich Horschig <fhorschig@chromium.org>
Date: Thu May 24 09:38:02 2018

Revert "Adapt scroll-visual-viewport-send-boundary-events.html to run with a compositor"

This reverts commit ec54e1ca07094b9b8e737d9e87e72555ef2215b5.

Reason for revert: The newly introduced test failed consistently. Please check either the test or it's implementation. Details in the linked bug.

Original change's description:
> Adapt scroll-visual-viewport-send-boundary-events.html to run with a compositor
> 
> Since this test uses chrome.gpuBenchmarking.pinchBy, we need to have
> it run with a compositor. As part of  issue 787924 , we will no longer
> handle gesture pinch events on the main thread.
> 
> Bug:  787924 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I0127028f246ae72a772ef8c9f163b4403b6c3036
> Reviewed-on: https://chromium-review.googlesource.com/1068625
> Commit-Queue: Kevin McNee <mcnee@chromium.org>
> Reviewed-by: Ella Ge <eirage@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#560831}

TBR=mcnee@chromium.org,eirage@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  787924 ,  846243 
Change-Id: I9e6b2f6e8d0ad6d6a43048659f825d590f218fd8
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/1071527
Reviewed-by: Friedrich Horschig <fhorschig@chromium.org>
Commit-Queue: Friedrich Horschig <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561440}
[modify] https://crrev.com/1323de0969cbbd35f06c5286cfcdebe76ccfa263/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/1323de0969cbbd35f06c5286cfcdebe76ccfa263/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[rename] https://crrev.com/1323de0969cbbd35f06c5286cfcdebe76ccfa263/third_party/WebKit/LayoutTests/fast/events/scroll-visual-viewport-send-boundary-events.html

Project Member

Comment 12 by bugdroid1@chromium.org, May 24 2018

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

commit 024d85151664a1b43557d57af0188142c9cecc19
Author: Ella Ge <eirage@chromium.org>
Date: Thu May 24 17:13:46 2018

Reland "Adapt scroll-visual-viewport-send-boundary-events.html to run with a compositor"

This is a reland of ec54e1ca07094b9b8e737d9e87e72555ef2215b5

Original change's description:
> Adapt scroll-visual-viewport-send-boundary-events.html to run with a compositor
> 
> Since this test uses chrome.gpuBenchmarking.pinchBy, we need to have
> it run with a compositor. As part of  issue 787924 , we will no longer
> handle gesture pinch events on the main thread.
> 
> Bug:  787924 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I0127028f246ae72a772ef8c9f163b4403b6c3036
> Reviewed-on: https://chromium-review.googlesource.com/1068625
> Commit-Queue: Kevin McNee <mcnee@chromium.org>
> Reviewed-by: Ella Ge <eirage@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#560831}

Bug:  787924 
Change-Id: I1d662bb8855ac32226cfd149c58b80d318e9adb7
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/1071807
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561536}
[modify] https://crrev.com/024d85151664a1b43557d57af0188142c9cecc19/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/024d85151664a1b43557d57af0188142c9cecc19/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[rename] https://crrev.com/024d85151664a1b43557d57af0188142c9cecc19/third_party/WebKit/LayoutTests/fast/events/pinch/scroll-visual-viewport-send-boundary-events.html

Project Member

Comment 13 by bugdroid1@chromium.org, May 25 2018

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

commit 391420fffc5d5aa2683e5bada83210fffa60ca65
Author: Kevin McNee <mcnee@chromium.org>
Date: Fri May 25 21:02:22 2018

Remove obsolete DevTools pinch emulation workaround

DevToolsEmulator::HandleInputEvent handles the case of a gesture pinch
being handled on the main thread. Since touchscreen gesture pinch
events are all handled on the compositor thread, this workaround is no
longer needed.

Bug:  787924 ,  734201 
Change-Id: I3499c1129b0ee529a8d218a652c69e258fa93fc0
Reviewed-on: https://chromium-review.googlesource.com/1073401
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562006}
[modify] https://crrev.com/391420fffc5d5aa2683e5bada83210fffa60ca65/third_party/blink/renderer/core/exported/web_view_impl.cc
[modify] https://crrev.com/391420fffc5d5aa2683e5bada83210fffa60ca65/third_party/blink/renderer/core/inspector/dev_tools_emulator.cc
[modify] https://crrev.com/391420fffc5d5aa2683e5bada83210fffa60ca65/third_party/blink/renderer/core/inspector/dev_tools_emulator.h

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 4 2018

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

commit b19d962194d1a7317658cd237b829f083ca07b5c
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Jun 04 17:01:39 2018

Have vertical-scroll-touch-block-manual.tentative.html run with a compositor

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

Bug:  787924 
Change-Id: I800da132cb986e86789b3792e193640e40e108c0
Reviewed-on: https://chromium-review.googlesource.com/1081345
Reviewed-by: Ehsan Karamad <ekaramad@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564118}
[modify] https://crrev.com/b19d962194d1a7317658cd237b829f083ca07b5c/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b19d962194d1a7317658cd237b829f083ca07b5c/third_party/WebKit/LayoutTests/VirtualTestSuites
[modify] https://crrev.com/b19d962194d1a7317658cd237b829f083ca07b5c/third_party/WebKit/LayoutTests/external/wpt_automation/feature-policy/experimental-features/vertical-scroll.js
[add] https://crrev.com/b19d962194d1a7317658cd237b829f083ca07b5c/third_party/WebKit/LayoutTests/virtual/threaded/external/wpt/feature-policy/experimental-features/README.txt

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 4 2018

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

commit 297980d7a0e33b44dce6c727d7016345a80e33fa
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Jun 04 21:32:14 2018

Move touchpad pinch zoom synthetic wheel event generation out of blink.

Currently, we create gesture pinch events for touchpad pinches and send
these to the renderer. In blink, we dispatch a synthetic wheel event
to allow the page to cancel the page scale change.

We move this logic into the browser, so that we send the synthetic
mouse wheel from the browser to the renderer. When the browser receives
the ACK, it sends the gesture pinch event if the wheel event was
not consumed.

Bug:  787924 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic7f8791433a5dddeb6196a06c04423e634091925
Reviewed-on: https://chromium-review.googlesource.com/894102
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Reviewed-by: Robert Ma <robertma@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564246}
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/cc/layers/viewport.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/BUILD.gn
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/frame_host/cross_process_frame_connector.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/frame_host/render_widget_host_view_guest.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/frame_connector_delegate.h
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/README.md
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/input_router_impl.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/input_router_impl_unittest.cc
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/touchpad_pinch_browsertest.cc
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/touchpad_pinch_event_queue.cc
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/touchpad_pinch_event_queue.h
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/touchpad_pinch_event_queue_unittest.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/input/web_input_event_builders_mac.mm
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_input_event_router.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_cocoa.mm
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/browser/site_per_process_hit_test_browsertest.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/common/input/synthetic_web_input_event_builders.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/test/BUILD.gn
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/content/test/data/page_with_wheel_handler.html
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/testing/buildbot/filters/viz.content_browsertests.filter
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/NeverFixTests
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/SmokeTests
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/fast/events/pointerevents/pinch/README.txt
[add] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/synthetic_gestures/README.txt
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/scroll-visual-viewport-send-boundary-events.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-in-slow.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-out-slow.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-desktop.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow-desktop.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow-desktop.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture.css
[rename] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture.js
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/blink/public/platform/web_gesture_event.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/blink/renderer/core/exported/web_view_impl.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/blink/renderer/core/exported/web_view_impl.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/third_party/blink/renderer/core/frame/visual_viewport_test.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/ui/events/blink/blink_event_util.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/ui/events/blink/input_handler_proxy.h
[modify] https://crrev.com/297980d7a0e33b44dce6c727d7016345a80e33fa/ui/events/blink/input_handler_proxy_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 13 2018

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

commit 8891fb84f1bd2b979b9a59b1ff79676c09530f6c
Author: Kevin McNee <mcnee@chromium.org>
Date: Wed Jun 13 17:53:47 2018

Cleanup unneeded uses of gesture pinch events in blink.

Since all gesture pinch event handling is done on the compositor
thread, remove unused handling code in blink.

Bug:  787924 
Change-Id: I1df193017e7e5e30c247bf4080240cdd89600e2b
Reviewed-on: https://chromium-review.googlesource.com/1087799
Reviewed-by: Rick Byers <rbyers@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566904}
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/public/platform/web_gesture_event.h
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/renderer/core/exported/web_view_impl.cc
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/renderer/core/input/gesture_manager.cc
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/renderer/core/input/scroll_manager.cc
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/renderer/core/page/page_widget_delegate.cc
[modify] https://crrev.com/8891fb84f1bd2b979b9a59b1ff79676c09530f6c/third_party/blink/renderer/platform/web_gesture_event.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 13 2018

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

commit e477e1f0ea410361c95e494f62e097fd9c328264
Author: Kevin McNee <mcnee@chromium.org>
Date: Wed Jun 13 19:34:11 2018

Remove sending of gesture pinch events via EventSender

Since all gesture pinch event handling is done on the compositor
thread, sending gesture pinch events via EventSender has no effect.

Bug:  787924 
Change-Id: Iac8cb5b387eede1bdf7d172d71ac746fd2cd70fb
Reviewed-on: https://chromium-review.googlesource.com/1087403
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566949}
[modify] https://crrev.com/e477e1f0ea410361c95e494f62e097fd9c328264/content/shell/test_runner/event_sender.cc
[modify] https://crrev.com/e477e1f0ea410361c95e494f62e097fd9c328264/content/shell/test_runner/event_sender.h

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 13 2018

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

commit ba32a92fed1d8a6fe999c700b49ce3ac7deca5d9
Author: Kevin McNee <mcnee@chromium.org>
Date: Wed Jun 13 23:27:12 2018

Don't send pinch browser side implementation details to the renderer

Gesture pinch events have |needs_wheel_event| and |zoom_disabled| as
browser side implementation details. There is no need to include these
fields when sending the event to the renderer.

Bug:  787924 
Change-Id: I2a2e4f9376f384801bb2ca73b5a0e20d589e92e1
Reviewed-on: https://chromium-review.googlesource.com/1087433
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567043}
[modify] https://crrev.com/ba32a92fed1d8a6fe999c700b49ce3ac7deca5d9/content/common/input/input_event_struct_traits.cc
[modify] https://crrev.com/ba32a92fed1d8a6fe999c700b49ce3ac7deca5d9/content/common/input/input_handler.mojom

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 14 2018

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

commit 7905378bdc589baa60e76f68a628417b42dd2ed5
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu Jun 14 01:52:16 2018

DCHECK InnerViewportScrollNode in page scale snap-to-min.

Now that we no longer send gesture pinch events to OOPIF renderers,
we can remove the check for the InnerViewportScrollNode before the
snap-to-min page scale animation and have it be a DCHECK instead.

Bug:  787924 , 791885
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I834a40ed6df46fa48abb3662a0331cc7bc1365c0
Reviewed-on: https://chromium-review.googlesource.com/1087399
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567088}
[modify] https://crrev.com/7905378bdc589baa60e76f68a628417b42dd2ed5/cc/layers/picture_layer_impl_unittest.cc
[modify] https://crrev.com/7905378bdc589baa60e76f68a628417b42dd2ed5/cc/layers/viewport.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 10

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

commit 876720ce74039dc0130e523ae21b6ef9f76300d2
Author: Kevin McNee <mcnee@chromium.org>
Date: Tue Jul 10 22:06:07 2018

Elide touchpad pinch gesture steams consisting of only a begin and end

Touchpad pinch updates may be prevented by a page which cancels the
synthetic wheel events. We now delay the sending of the begin event
until we have an unconsumed update event. If the begin event has
not been sent by the time we see the end event, we can elide the
begin and end events.

Bug:  787924 
Change-Id: Ib50c6d55d416fb4bed10bcaa09a37e528ebb81bb
Reviewed-on: https://chromium-review.googlesource.com/1113940
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573941}
[modify] https://crrev.com/876720ce74039dc0130e523ae21b6ef9f76300d2/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/876720ce74039dc0130e523ae21b6ef9f76300d2/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/876720ce74039dc0130e523ae21b6ef9f76300d2/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/876720ce74039dc0130e523ae21b6ef9f76300d2/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 17

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

commit ada8f6dbc7b47747b3916da418d5cd7e0cf32db1
Author: Kevin McNee <mcnee@chromium.org>
Date: Tue Jul 17 17:47:32 2018

Link to touchpad pinch zoom design doc in README

Bug:  787924 
Change-Id: I4da50acf43aa180cd62ea5e2210c5d54adda1dcf
Reviewed-on: https://chromium-review.googlesource.com/1140673
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575708}
[modify] https://crrev.com/ada8f6dbc7b47747b3916da418d5cd7e0cf32db1/content/browser/renderer_host/input/README.md

Status: Fixed (was: Started)
That should do it in terms of moving the implementation to the browser. There's still the optimization of sending async synthetic wheels to explore, but that can be covered by another bug such as  crbug.com/565980  .
Project Member

Comment 23 by bugdroid1@chromium.org, Oct 18

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

commit cccd8b081ba6273a8ec5db88b6a7e428396d61fd
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu Oct 18 16:10:01 2018

Update callers of WebGestureEvent::NeedsWheelEvent

I previously made the DCHECK in WebGestureEvent::NeedsWheelEvent
more strict, but overlooked these callers. Here we update these
remaining callers so that they won't hit the DCHECK.

Bug:  787924 ,  802369 
Change-Id: I65ae2dc873b25d0a3d770f2581a278b06ce7e7d8
Reviewed-on: https://chromium-review.googlesource.com/c/1286767
Reviewed-by: James MacLean <wjmaclean@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600782}
[modify] https://crrev.com/cccd8b081ba6273a8ec5db88b6a7e428396d61fd/components/guest_view/browser/guest_view_base.cc
[modify] https://crrev.com/cccd8b081ba6273a8ec5db88b6a7e428396d61fd/extensions/browser/app_window/app_web_contents_helper.cc

Sign in to add a comment