New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 646592 link

Starred by 3 users

Issue metadata

Status: Archived
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Wheel events are synchronous during a fling, even if all listeners are passive

Project Member Reported by rbyers@chromium.org, Sep 13 2016

Issue description

Chrome Version       : 54.0.2840.13
OS Version: 8743.11.0

What steps will reproduce the problem?
1. Open http://rbyers.github.io/scroll-latency.html
2. Enable some handler jank 
3. Enable 'passive'
4. Enable 'show non-blocking events'
5. Do a touchpad fling

What is the expected result?
Expect all the wheel events to show up as 'non-blocking'

What happens instead of that?
The wheel events that occur while the finger is in contact with the touchpad are non-blocking, but those that occur as part of the fling are blocking.

Please provide any additional information below. Attach a screenshot if
possible.

UserAgentString: Mozilla/5.0 (X11; CrOS x86_64 8743.11.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.13 Safari/537.36



 
Cc: -dtapu...@chromium.org puneetster@chromium.org katierh@chromium.org reve...@chromium.org adlr@chromium.org
Owner: dtapu...@chromium.org
Status: Assigned (was: Untriaged)
Dave, can you take a look at this?
Ya to fix this the TODO needs to be implemented here: https://cs.chromium.org/chromium/src/ui/events/blink/input_handler_proxy.cc?type=cs&sq=package:chromium&rcl=1473837482&l=1266

The input_handler_client should be changed to support the ability for the proxy to synthesize an event and then the kPassive case can be handled by trying to cause a scroll and it if returns non-blocking then a wheel event can be synthesized to the main thread.
Labels: -Pri-2 Pri-1
Talked with Rick and we would really like to see this fixed asap.  
If you are eager you can apply this patch to a build.. https://codereview.chromium.org/2341873002/

It's under review now.
Project Member

Comment 5 by bugdroid1@chromium.org, Sep 20 2016

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

commit 1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22
Author: dtapuska <dtapuska@chromium.org>
Date: Tue Sep 20 22:12:48 2016

Handle touchpad flings with passive event listeners on compositor thread.

Touchpad flings that have only passive event listeners were forced to be
main thread. Handle event injection to the main thread event queue
for when we get passive events so it can be entirely done on the
compositor thread.

BUG= 646592 
TBR=ben@chromium.org

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

[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/blimp/client/core/input/blimp_input_handler_wrapper.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/blimp/client/core/input/blimp_input_handler_wrapper.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_event_filter.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_event_filter.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_handler_manager.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_handler_manager.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_handler_manager_client.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_handler_wrapper.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/input/input_handler_wrapper.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/content/renderer/mus/compositor_mus_connection_unittest.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/ui/events/blink/input_handler_proxy.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/ui/events/blink/input_handler_proxy_client.h
[modify] https://crrev.com/1bcb284c49ca00b7ebf70d5de2cdbd2809a57a22/ui/events/blink/input_handler_proxy_unittest.cc

Status: Fixed (was: Assigned)
Labels: Merge-Request-54

Comment 8 by dimu@chromium.org, Sep 21 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

Comment 9 by bugdroid1@chromium.org, Sep 22 2016

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9743ba418f7c50e0d0aae830a01669d42ea0eb2

commit f9743ba418f7c50e0d0aae830a01669d42ea0eb2
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Sep 22 20:38:29 2016

Handle touchpad flings with passive event listeners on compositor thread.

Touchpad flings that have only passive event listeners were forced to be
main thread. Handle event injection to the main thread event queue
for when we get passive events so it can be entirely done on the
compositor thread.

BUG= 646592 
TBR=ben@chromium.org

Review-Url: https://codereview.chromium.org/2341873002
Cr-Commit-Position: refs/heads/master@{#419870}
(cherry picked from commit 17dfaf083d4ca457814a6ef205007da1c413752b)

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

Cr-Commit-Position: refs/branch-heads/2840@{#496}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_event_filter.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_event_filter.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager_client.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_wrapper.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_wrapper.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/mus/compositor_mus_connection_unittest.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy_client.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy_unittest.cc

Labels: VerifyIn-55
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 27 2016

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

commit f9743ba418f7c50e0d0aae830a01669d42ea0eb2
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Sep 22 20:38:29 2016

Handle touchpad flings with passive event listeners on compositor thread.

Touchpad flings that have only passive event listeners were forced to be
main thread. Handle event injection to the main thread event queue
for when we get passive events so it can be entirely done on the
compositor thread.

BUG= 646592 
TBR=ben@chromium.org

Review-Url: https://codereview.chromium.org/2341873002
Cr-Commit-Position: refs/heads/master@{#419870}
(cherry picked from commit 17dfaf083d4ca457814a6ef205007da1c413752b)

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

Cr-Commit-Position: refs/branch-heads/2840@{#496}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_event_filter.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_event_filter.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_manager_client.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_wrapper.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/input/input_handler_wrapper.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/content/renderer/mus/compositor_mus_connection_unittest.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy_client.h
[modify] https://crrev.com/f9743ba418f7c50e0d0aae830a01669d42ea0eb2/ui/events/blink/input_handler_proxy_unittest.cc

Comment 14 by dchan@google.com, Nov 19 2016

Labels: VerifyIn-56

Comment 15 by dchan@google.com, Jan 21 2017

Labels: VerifyIn-57

Comment 16 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 17 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 18 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 20 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)

Sign in to add a comment