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

Issue 596013 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Horizontal scrolling does not work

Reported by mar...@holzhauer.eu, Mar 18 2016

Issue description

Chrome Version       : 49.0.2623.87
OS Version: Ubuntu 15.10
URLs (if applicable) : All with Horizontal scrolling (including inline PDF view) one example https://tweetdeck.twitter.com/#

Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
  Firefox 45: OK

What steps will reproduce the problem?
1. Go to a website or a pdf with horizontal scrolling
2. Try to scroll horizontal

What is the expected result?
 Horizontal scrolling

What happens instead of that?
 Nothing


UserAgentString: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36



 
Components: Blink>Scroll
Labels: Needs-Feedback
I'm using 49.0.2623.87 on Ubuntu 14.04. There is a horizontal slider at the bottom of the page when the window is smaller than the tweetdeck.

Can you please provide a screen recording of you displaying the issue.

Comment 3 by mar...@holzhauer.eu, Mar 24 2016

sorry that i did not made this more clear, i did not mean to scroll with a scrollbar but with a mice that supports horizontal scrolling.
I have a std mouse and shift-wheel scroll works correctly on this div.
Can you provide more details on your hardware?

Comment 5 by mar...@holzhauer.eu, Mar 24 2016

it's a Cyborg R.A.T. 7

in a few hours i also could provide a xev console dump of the left/right scroll events

Comment 6 by mar...@holzhauer.eu, Mar 25 2016

xev dump of left/right scroll

ButtonPress event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x4e00002, time 121183689, (46,30), root:(1167,480),
    state 0x10, button 6, same_screen YES

EnterNotify event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x0, time 121183690, (46,30), root:(1167,480),
    mode NotifyGrab, detail NotifyInferior, same_screen YES,
    focus NO, state 16

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  4294967255 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonRelease event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x4e00002, time 121183690, (46,30), root:(1167,480),
    state 0x10, button 6, same_screen YES

LeaveNotify event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x0, time 121183690, (46,30), root:(1167,480),
    mode NotifyUngrab, detail NotifyInferior, same_screen YES,
    focus NO, state 16

LeaveNotify event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x4e00002, time 121183851, (46,30), root:(1167,480),
    mode NotifyGrab, detail NotifyVirtual, same_screen YES,
    focus NO, state 16

EnterNotify event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x4e00002, time 121183852, (46,30), root:(1167,480),
    mode NotifyUngrab, detail NotifyVirtual, same_screen YES,
    focus NO, state 16

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  4294967255 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonPress event, serial 37, synthetic NO, window 0x4e00001,
    root 0xd7, subw 0x4e00002, time 121183851, (46,30), root:(1167,480),
    state 0x10, button 7, same_screen YES

Project Member

Comment 7 by sheriffbot@chromium.org, Mar 25 2016

Labels: -Needs-Feedback Needs-Review
Owner: dtapu...@chromium.org
Thank you for providing more feedback. Adding requester "dtapuska@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://sites.google.com/a/chromium.org/dev/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: bokan@chromium.org w.shackl...@gmail.com
w.shackleton@; do you have any comments with respect to this. It is getting out of my realm; I'm wondering if it has something to do with XInput2 events.
Can you provide the output of `xinput list --long` as an attachment and provide which mouse device is causing the issue?
Also can you check if side scrolling works in eg. a recent version of evince (this also supports smooth scrolling).

Comment 11 by bokan@chromium.org, Mar 30 2016

To reporter: Is this a new problem in a recent version of Chrome or has it always been present?
can't say if this was introduces with the exact version reported but it worked before
evince left/right scroll with the left/right scrollwheel works

and also tested shift+up/down scroll works as left/right scroll in chrome
Attached the output of 'xinput list --long'

Also tested my Logitech Performance MX
with this i can scroll left/right - but there is no difference in the XEV output of left scrolling with my R.A.T.7 or the Performance MX
xinputlist.txt
9.7 KB View Download
Left/Right scroll via Trackpad does also work - same xev output as the R.A.T.7
OK so from the xinput list --long output I can see that your R.A.T.7 mouse only reports a scroll valuator for vertical scroll events.

This problem is caused at https://chromium.googlesource.com/chromium/src/+/master/ui/events/devices/x11/device_data_manager_x11.cc#427 - the code assumes that if a device has a scroll valuator for one axis, it has one for both.

I can fix this in a couple of weeks time, when I'm back at my desktop / build server. If it needs fixing before then I can clone chrome to my laptop but that's not something I really want to do (RIP laptop thermal).
Cc: dtapu...@chromium.org
Status: Assigned (was: Unconfirmed)
Assigning to myself for pending patch from w.shackleton@gmail.com. Will check back in a couple weeks.
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 19 2016

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

commit b89e8ac7021fcee56c7cc34fd077eac253c99d0b
Author: w.shackleton <w.shackleton@gmail.com>
Date: Tue Apr 19 15:14:42 2016

Removed DeviceDataManagerX11::scrollclass_devices_

This field isn't needed, and goes against the idea that a mouse either supports
scroll classes entirely or not at all. Instead we should use logic that checks
whether a device supports horizontal, vertical or both scroll classes. I also
fixed some logic that could have passed an invalid validator ID into
XIMaskIsSet---this new check covers the check removed above it.

BUG= 596013 

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

Cr-Commit-Position: refs/heads/master@{#388208}

[modify] https://crrev.com/b89e8ac7021fcee56c7cc34fd077eac253c99d0b/ui/events/devices/x11/device_data_manager_x11.cc
[modify] https://crrev.com/b89e8ac7021fcee56c7cc34fd077eac253c99d0b/ui/events/devices/x11/device_data_manager_x11.h

^ that was just part 1 of the fix. Part 2 is https://codereview.chromium.org/1891303002/

Comment 20 by k.ha...@gmail.com, Apr 21 2016

Since a while back horizontal scrolling in chrome has been dead (works everywhere else). I mean I can use shift+scroll but the horizontal scroll on my mouse (xev setup tested and working in ALL other applications I can think of). Chromium is 50.0.2661.75 and I'm on Arch Linux.
The mentioned CL should fix this once it gets accepted. Can you attach the output of `xinput list --long`? I'll check that it's the same bug as will be fixed by this CL.

Comment 22 by k.ha...@gmail.com, Apr 21 2016

All right, output from "xinput list --long" attached (also put it on http://pastebin.com/vjp246MF)
xinput-list-long.txt
7.1 KB View Download
Thanks. That'll be fixed by the CL above (it's the same bug).
Project Member

Comment 24 by bugdroid1@chromium.org, Apr 22 2016

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

commit 1517f16eda05f6cbec46cb9efdf806ce7ed2240c
Author: w.shackleton <w.shackleton@gmail.com>
Date: Fri Apr 22 09:11:28 2016

Fixed scrolling for mixed-valuator mouse

I fixed scrolling for the case when a mouse only has a scroll valuator for one
of its axes; this is done by first making GetScrollOffsetsFromXEvent only
return true when an actual smooth scroll event is being processed, and secondly
by adding a second check that disables legacy scroll events if the device could
have outputted a valuator event.

BUG= 596013 

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

Cr-Commit-Position: refs/heads/master@{#389059}

[modify] https://crrev.com/1517f16eda05f6cbec46cb9efdf806ce7ed2240c/ui/events/x/events_x_utils.cc

That should be that all fixed now.
Status: Fixed (was: Assigned)

Comment 27 by bokan@chromium.org, Apr 28 2016

Dave, do we want to merge this back to M51? I think it should be fairly low risk and we're early in the 51 branch.
Labels: Merge-Request-51

Comment 29 by tin...@google.com, Apr 28 2016

Labels: -Merge-Request-51 Merge-Approved-51 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M51 (branch: 2704)
Project Member

Comment 30 by bugdroid1@chromium.org, Apr 28 2016

Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef15254ebb53083a61667ea253372d690d61b125

commit ef15254ebb53083a61667ea253372d690d61b125
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Apr 28 20:42:04 2016

Removed DeviceDataManagerX11::scrollclass_devices_

This field isn't needed, and goes against the idea that a mouse either supports
scroll classes entirely or not at all. Instead we should use logic that checks
whether a device supports horizontal, vertical or both scroll classes. I also
fixed some logic that could have passed an invalid validator ID into
XIMaskIsSet---this new check covers the check removed above it.

BUG= 596013 

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

Cr-Commit-Position: refs/heads/master@{#388208}
(cherry picked from commit b89e8ac7021fcee56c7cc34fd077eac253c99d0b)

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

Cr-Commit-Position: refs/branch-heads/2704@{#290}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/ef15254ebb53083a61667ea253372d690d61b125/ui/events/devices/x11/device_data_manager_x11.cc
[modify] https://crrev.com/ef15254ebb53083a61667ea253372d690d61b125/ui/events/devices/x11/device_data_manager_x11.h

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 28 2016

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

commit 6433bb28a72791a3ab62e854b4b16a5cdd03db2f
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Apr 28 20:47:03 2016

Fixed scrolling for mixed-valuator mouse

I fixed scrolling for the case when a mouse only has a scroll valuator for one
of its axes; this is done by first making GetScrollOffsetsFromXEvent only
return true when an actual smooth scroll event is being processed, and secondly
by adding a second check that disables legacy scroll events if the device could
have outputted a valuator event.

BUG= 596013 

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

Cr-Commit-Position: refs/heads/master@{#389059}
(cherry picked from commit 1517f16eda05f6cbec46cb9efdf806ce7ed2240c)

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

Cr-Commit-Position: refs/branch-heads/2704@{#291}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/6433bb28a72791a3ab62e854b4b16a5cdd03db2f/ui/events/x/events_x_utils.cc

Labels: Hotlist-Input-Dev

Sign in to add a comment