[e10s] Horizontal Scroll not working correctly

RESOLVED FIXED in Firefox 45

Status

()

Core
Widget: Cocoa
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: Johan Larsson, Assigned: mstange)

Tracking

44 Branch
mozilla45
All
Mac OS X
Points:
---

Firefox Tracking Flags

(e10sm8+, firefox45 fixed)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(2 attachments)

(Reporter)

Description

2 years ago
Created attachment 8683559 [details]
horizontal-scrolling-bug.html

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:44.0) Gecko/20100101 Firefox/44.0
Build ID: 20151104004053

Steps to reproduce:

Scroll horizontally in a div with overflow-x: scroll with a Magic Mouse or a Magic Trackpad on OS X 10.11.1.


Actual results:

The div always scrolls 1 px.


Expected results:

The div should scroll corresponding to the input of the mouse like it did in the 43 Branch.
(Reporter)

Comment 1

2 years ago
Unfortunately I'm not able to reproduce this on other machines than my own. Is there some info that would be helpful about my specific system?
Please check if the issue occurs using Firefox in safe mode (with your addons disabled):
http://support.mozilla.com/kb/Safe+Mode

And on a new, empty profile:
http://support.mozilla.org/en-US/kb/Managing-profiles#w_starting-the-profile-manager

Moreover, check in the system preferences if your touchpad settings are still enabled.
Flags: needinfo?(johan)

Updated

2 years ago
Component: Untriaged → Event Handling
Product: Firefox → Core
(Reporter)

Comment 3

2 years ago
Yes, the bug occurs even in safe mode and with an empty profile.

However, if I start it in a non-e10 window it works as it should. So it seems to be associated with multi-process windows.
Flags: needinfo?(johan)
Summary: Horizontal Scroll not working correctly → [e10s] Horizontal Scroll not working correctly
In a clean profile, can you go to about:config, set the layers.async-pan-zoom.enabled pref to false, restart the browser, and see if it still happens (in an e10s window)? That will help narrow it down. Thanks!
(Reporter)

Comment 5

2 years ago
The default value for layers.async-pan-zoom.enabled is false. If I use the default value, it doesn't work. If I change it to true the scrolling starts working as expected.
Thanks for checking! This sounds like an e10s bug then.
tracking-e10s: --- → ?
Assignee: nobody → gwright
tracking-e10s: ? → m8+
Kats, what's the likelihood you think that we'll be able to ship APZC with 45?
It's hard to say, but at this point the work items we have left don't seem like they'll fit in the time left we have for 45, specially given Mozlando eats up a week.
(Assignee)

Comment 9

2 years ago
Created attachment 8690925 [details]
MozReview Request: Bug 1221913 - Make swiping work correctly in e10s mode even if APZ is off. r?kats

Bug 1221913 - Make swiping work correctly in e10s mode even if APZ is off. r?kats
Attachment #8690925 - Flags: review?(bugmail.mozilla)
Attachment #8690925 - Flags: review?(bugmail.mozilla) → review+
Comment on attachment 8690925 [details]
MozReview Request: Bug 1221913 - Make swiping work correctly in e10s mode even if APZ is off. r?kats

https://reviewboard.mozilla.org/r/26013/#review23381

Seems like a straightforward enough fix, thanks!

::: dom/ipc/TabParent.cpp:2699
(Diff revision 1)
> +  // Do this even if APZ is off.

append "since we need it for swipe gesture support on OS X without APZ."
Thinking about it more, the above patch might have nonintuitive behaviour on non-OS X widgets. If we call InputAPZContext::SetRoutedToChildProcess without having an InputAPZContext instance on the stack somewhere, it sets sRoutedToChildProcess to true globally, and that will never get set back to false. In theory it shouldn't be a problem because nobody can read that value without having an InputAPZContext instance, but it makes me a little uneasy. Not sure if there's a good way to avoid it though.
(Assignee)

Comment 12

2 years ago
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #11)
> In theory it shouldn't be a problem because nobody can read that
> value without having an InputAPZContext instance

Right, I don't think it's worth worrying about. But good catch.

I did a bit more testing and realized that I wasn't setting mCurrentPanGestureBelongsToSwipe to true in the case where the event was sent to the content process. So I've moved that to the end of TrackScrollEventAsSwipe.
Assignee: gwright → mstange
Status: UNCONFIRMED → ASSIGNED
Component: Event Handling → Widget: Cocoa
Ever confirmed: true
OS: Unspecified → Mac OS X
Hardware: Unspecified → All
(Assignee)

Comment 13

2 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/ffb07ca7200e86d6f476ca99b4f324e1aeae5fac
Bug 1221913 - Make swiping work correctly in e10s mode even if APZ is off. r=kats

Comment 14

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/ffb07ca7200e
Status: ASSIGNED → RESOLVED
Last Resolved: 2 years ago
status-firefox45: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.