Closed Bug 198964 Opened 21 years ago Closed 12 years ago

Enable smooth scrolling by default

Categories

(Core :: Web Painting, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla13
Tracking Status
firefox13 + verified

People

(Reporter: roc, Assigned: jaws)

References

(Depends on 2 open bugs, Regressed 1 open bug)

Details

(Whiteboard: [Snappy][qa!])

Attachments

(2 files, 3 obsolete files)

Now that smooth scrolling has been checked in, we need to decide whether and
when it should be enabled.

My current feeling is that we should honor the platform setting if there is one
(this may require adding to nsILookAndFeel). If there is no platform setting
then we should default to OFF for Seamonkey. Other products can make their own
decisions.

I don't think there should be UI for this.
I agree, there's no need for a UI pref for this. In my humble opinion, this
should be on by default in Phoenix. I don't have an opinion for Mozilla.
Please disregard my previous comment. A Phoenix-specific bug has been filed: Bug
198992
What about making this bug dependent on all bugs that have to be fixed before
smooth scrolling may be enabled by default?

In my opinion this list should include Bug 198987, Bug 199107 and Bug 199024.

Enabling smooth scrolling without these bugs fixed would annoy users to much, I
believe.
Good idea. Can you add the dependencies? Thanks.
Depends on: 199107
Depends on: 198987, 199024
I hate to be the voice of dissent in my very first bugzilla post, but I can't
agree at all with above comments about there needing to be no UI for this. 

Certainly, where there IS a platform setting for smooth scrolling, it should be
followed by default. Most platforms don't really have such a setting at the
moment, though. Internet Explorer, I think the first thing to offer this
behaviour, set the precedent by allowing it to be turned on or off in its
advanced preferences. I am very glad that the option is available there--I
really dislike the way IE smooth-scrolls and would hate to be locked into
dealing with it. I would hate even more to be locked into using mozilla's
smooth-scroll. Two reasons: (1) while different and perhaps better than IE's,
it's still not preferable on my machine; (2) There's no reason, given the
extensiveness of mozilla's preference panel, not to have it there. Other
projects with simplicity interests can, as already mentioned, make their own
decision on UI.
Depends on: 199671
Is there a way to check whether the IE preference for smooth scroll has been
turned on and then just use that setting for Mozilla?  Maybe it's in the
registry somewhere.  That could be one solution.

On second thought, there probably should be a UI option in case users on other
OSes want it for some bizarre reason or if windows users really hate smooth
scrolling.  I'd hate to see UI for yet another pref, but messing with look and
feel and making it harder to change than a checkbox is probably going to annoy
users.
Not everyone likes smooth scrolling.

One of the big reasons I've never liked IE, is because its core behaviour has
felt different. When I was trying out IE4 along side NS4, back in 1998, I
noticed how the key presses (pgup/dwn, arrows, mouse wheel) didn't work as expected.

Whenever I've had to use a computer with IE, that I could just plonk Mozilla on,
I've removed smooth scrolling. All it did was un-smooth it (IMO) since I
couldn't use the mouse wheel or keys in the same way as I'd used them in
every-other application since I started using a computer. It breaks how the
interface feels.

Please do not enable this by default.  Have a preference in the installer for
Netscape behaviour or IE behaviour, letting people choose the feel (ala KDE).
Our smooth-scroll technique is much less intrusive than IE's. I'd like people to
try our smooth scrolling and base their comments on that when they comment in
this bug. "I don't like the way it works in IE" is not really valid since we do
it differently from IE.
Robert: you _want_ people to comment in this bug with their opinion, or are you
only saying that if they really must, to do so based on actual experience?
I want people to comment. But I want people to comment based on their
experiences with Mozilla, not IE. And I'd prefer it if people wait until after
the patch in bug 199607 has landed, which among other things makes it smoother.
no UI = Bad Idea
Some people might like smooth scroll in other applications,
but not when browsing the web.

By default, it should honor OS settings.
And it's a totally stupid idea to rely on IE's.

Where is Windows' (OS) setting for smooth scroll?
- not under control panel -> mouse.
I think control panel -> Display -> Appearance under "effects". It's been a
while since I used Windows.
Okay, with bug 199607 in I tested this again. I am noticing a difference with
before, and like it better. In fact, if I scrolled only with pageup/pagedown or
by clicking in the scrollbar, I'd like it a lot and would be in favour of
enabling this by default.
However, I mostly scroll by using the scrollwheel, even for long distances. Due
to the continuous slowing down and speeding up for each "drag" on the
mousewheel, this creates a quite disconcerting effect, not to mention that it
_seems_ a lot slower. (And continuous scrolling with the arrow keys has just
become a crawlingly slow hell, even though it's especially there that it looks a
lot prettier than it did before.)

Now, I hardly ever use IE, and when I'm forced to I never notice this feature
(though I guess it could be turned off), but for Mozilla, unless there are
numbers showing that most users don't scroll using the mousewheel, I favour this
being off by default. 
(Actually, this should be a new bug, but whatever: could it be possible to do
this or not based on _how_ the view is being scrolled? If so, enable it for
pageup/pagedown, enable it but at a faster speed for arrow keys, and disable it
for mousewheel - that way it all works out and no visual pref would be needed
either.)
I hope that's the kind of feedback you were looking for. :)
That's good feedback.

> And continuous scrolling with the arrow keys has just become a crawlingly slow
> hell

You mean it takes you longer to scroll to the bottom of a long document with
smooth scrolling on? (It shouldn't.) or it just *feels* slower?

We could quite easily disable smooth scrolling for mousewheel scrolls, if we
decide that makes sense.
You're right, I timed it, and it only _feels_ slower when you continuously
scroll with the arrow keys. But it feels _a lot_ slower. :) 
Of course, I never scroll more than a few lines with the arrow keys, so I don't
know if this feeling would be important. And since it's possible to disable this
for mousewheel, I'm now in favour of doing that, enabling it for everything else
(with the possible exception of the arrow keys where I'm indifferent), and not
providing a UI pref.
Let me take back some of my earlier comments. Fixing Bug 199607 has made a world
of difference... so much so that I'd even understand having this automatically
and permanently on. While I still tend to think that it's a bad idea to have no
UI for this, really, the quality of it makes it much less of an issue. And, of
course, given the apparent new direction for the mozilla suite, preference
retail is about to get pretty expensive, I'd imagine. Maybe there could be a
smoothscrool customization extension ;)

Also, since this is apparently a question, I just thought I'd point out that in
Windows 95, 98, NT, and 2000, there is no system setting for smooth scrolling.
Windows XP may be different; I'm unsure. I could easily check, if it would be
helpful.

Anyway, excellent work on this! I am much impressed, maybe a smoothscroll
convert, and ... just thought I'd try and give my thanks along with my comments
to whoever they are due.
> Also, since this is apparently a question, I just thought I'd point out that in
> Windows 95, 98, NT, and 2000, there is no system setting for smooth scrolling.

For the sake of completeness: Internet Explorer has had a setting for smooth
scrolling in the "Advanced" tab of Internet Options since version 4.0. In
Windows 98 (and probably also in 95, NT and 2000), adding Tweak UI provides you
with a system-wide checkbox for smooth scrolling. Normally, MS Office and
Windows have smooth scrolling, but with Tweak UI you can switch it off.

If Mozilla would follow system settings in Win9x, the default for smooth
scrolling should be "on" on this platform. And I would be in favour of UI either
in the "Appearance" or "Advanced" section.
I checked using TweakUI that on my WinME, the system setting (actually per-user
setting) in registry is:

[HKEY_CURRENT_USER\Control Panel\Desktop]
"SmoothScroll"=hex:00,00,00,00
for the smooth scrolling switched off and
"SmoothScroll"=hex:01,00,00,00
for switched on.
Wow, smooth scrolling in 1.4a rocks. So, so much better than IE's. Great work roc!
Depends on: 201307
Depends on: 204728
This has nothing to do with my opinion of smooth scrolling, but simply my 2
cents after reading the comments.

I don't think this pref would merit UI since I am of the camp that we should
keep prefs, but make the prefs UI as simple as possible and delegate the rest to
about:config.

Since IE and Mozilla probably don't have exactly identical smooth scrolling
since they aren't identical browsers, it should be not assumed that people would
want to use smooth scrolling on Mozilla if its allowed for IE. I think we should
have honoring OS settings by default as one of the choices, but also should have
a choice to have it always on and always off.

I thought about having 3 options for the pref:

1: always on
2: always off
3: Base on OS (default)

But the 3rd is a problem for OSes that don't give you smooth scrolling as a
system-wide pref. Would you default to on or off in that case? Should we just
have 2, or 3? I think maybe just 2 because users don't expect a 3rd party
portable application to follow the system-wide settings, do they? Even some of
Microsoft's applications do their own thing. What do you think?

Giving people the choice is always important until things work perfectly in
everyon's opinion (utopian, but unrealistic).
Any news on this? I think it would be a good idea to make smooth scrolling the
default.
All depends on the two remaining bugs, but I think that only the bug 201307
should block this one.
Anyways, Novell said that it won't be fixed until Gecko 1.9, so we'll have to
wait for Firefox 2.0, which isn't going to be out before one year.
I don't think that it's very good for the Firefox's popularity, because people
don't know that it's possible to change this behavior (hidden in the advanced
prefs), so they say "IE is more comfortable". Scrolling is really popular among
web users.
Smooth scrolling is blurry and CPU intensive on 1GHZ Duron.
Depends on: 202718
QA Contact: ian → layout.view-rendering
Assignee: roc → nobody
Whiteboard: [Snappy]
I can do the front-end parts of this bug.

I think we should enable the pref, but only enable it if hardware acceleration is available and enabled and not do smooth scrolling if the keyboard up/down arrows are used.
Assignee: nobody → jwein
Status: NEW → ASSIGNED
(In reply to Jared Wein [:jwein and :jaws] from comment #25)
> I think we should enable the pref, but only enable it if hardware
> acceleration is available

That's an option, but may not be necessary.

> and enabled and not do smooth scrolling if the
> keyboard up/down arrows are used.

Other browsers seem to smooth-scroll on the up/down arrows. I like it. But up to you.
Blocks: 710372
Summary: Enable/disable smooth scrolling by default → Enable smooth scrolling by default
Attached patch WIP of patch for bug 198964 (obsolete) — Splinter Review
Pushed to try, although I have a feeling that /content/events/test/test_bug350471.xul and /content/events/test/test_bug574663.html will need to be updated since it looks like they assume the pref is off.

https://tbpl.mozilla.org/?tree=Try&rev=fe9874b2441b
Blocks: 235353
Attached patch WIP of patch for bug 198964 (obsolete) — Splinter Review
This WIP should include all of the test fixes.

Sent to try server: https://tbpl.mozilla.org/?tree=Try&rev=5c2afb3fc2d5
Attachment #581437 - Attachment is obsolete: true
Depends on: 675015
No longer depends on: 675015
Just to give an update. Here is where the latest patch stands: https://tbpl.mozilla.org/?tree=Try&rev=0ff6bd60fc1e

I will be away for vacation in case anyone wants to fix those last two tests. The patch isn't attached to this bug but can be retrieved from the tryserver at this link: https://hg.mozilla.org/try/raw-rev/b819e773a077
Attached patch Patch for bug 198964 (obsolete) — Splinter Review
Pushed to try: https://tbpl.mozilla.org/?tree=Try&rev=bc78e1ff3b2f

When landed, we will back it out of Aurora until the other smooth scrolling bugs are fixed.
Attachment #583678 - Attachment is obsolete: true
Attachment #586398 - Flags: review?(gavin.sharp)
From IRC (for my own notes):
> [11:29 AM] <gavin> jaws: clearUserPref never throws anymore
> [11:30 AM] <gavin> so you don't need to check prefHasUserValue before calling it in those smoothscroll tests
> [11:30 AM] <gavin> http://hg.mozilla.org/mozilla-central/rev/56d482ecbbc6
> [11:31 AM] <gavin> jaws: also you can use it in the cases where you have "prevValue" and then restore it
Comment on attachment 586398 [details] [diff] [review]
Patch for bug 198964

All the tests that use "prevSmoothScrollPref" or something like it should be changed to use clearUserPref, as discussed on IRC.
Attachment #586398 - Flags: review?(gavin.sharp) → review-
Updated and pushed to try: https://tbpl.mozilla.org/?tree=Try&rev=9cfea889ac56
Attachment #586398 - Attachment is obsolete: true
Attachment #588223 - Flags: review?(gavin.sharp)
Attachment #588223 - Flags: review?(gavin.sharp) → review+
https://hg.mozilla.org/integration/fx-team/rev/f7c8c8ee3fad
Whiteboard: [Snappy] → [Snappy][fixed-in-fx-team]
https://hg.mozilla.org/mozilla-central/rev/f7c8c8ee3fad
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Whiteboard: [Snappy][fixed-in-fx-team] → [Snappy]
Target Milestone: --- → mozilla12
I just hit this change in the latest Nightly.  It provides a very poor user experience.  While some users prefer smooth scrolling, I don't, so I had it unchecked on all of my machines.  The latest build ignores and changes my user preferences, forcing me to change it back on all of my machines again.  (As I use a lot of different machines, this is a lot of work.)  The browser should never ignore user preferences, or change them without permission from the user.
(In reply to Michael from comment #38)
> I just hit this change in the latest Nightly.  It provides a very poor user
> experience.

Thanks for your input. We are working on making smooth scrolling a better experience (see bug 710372). Can you file bugs for the user experience issues that you have with smooth scrolling? It'd be great if we could fix them and bring the feature to a point where you would like it enabled.
Sure. Will do!

Will this change reset my preferences every time I install a new Nightly?
It's not so much that it's a bug as that I like my browser (and other software) to respond instantly.  I know I'm scrolling and I don't want to have to wait for the browser to do so.  So even if smooth scrolling is fast, it's still annoying, because I still have to wait.  Every.  Time.  I.  Hit.  Page.  Down.  And I do that several times a minute on a typical page.  So there's really no change to smooth scrolling that would make me want to enable it, because by its very nature, it makes me want to disable it.  In general, I like features that make my browser faster and easier to use.  I don't like features that make it feel less responsive.

If you'd like me to file that as a bug, I can do so.

Also, it takes more CPU, and therefore more battery, to do smooth scrolling, and thus reduces the battery life on laptops where it's used.
(In reply to Michael from comment #40)
> Sure. Will do!
> 
> Will this change reset my preferences every time I install a new Nightly?

This preference should not change each time you update Nightly. Please file a bug if it does :)

(In reply to Michael from comment #41)
> It's not so much that it's a bug as that I like my browser (and other
> software) to respond instantly. ...

Let's move these discussions to a separate place, maybe dev.apps.firefox, so that the > 40 people CC'd to this bug don't get pinged continuously.
Maybe we should make the preference a tri-state value, with the default being to consults some system preference.

Windows XP had a setting for this: http://www.pctools.com/guides/registry/detail/121/. Dunno about later versions.
(In reply to Jared Wein [:jaws] from comment #32)
> Created attachment 586398 [details] [diff] [review]
> Patch for bug 198964
> 
> When landed, we will back it out of Aurora until the other smooth scrolling
> bugs are fixed.

Taras and I have talked about this and think that we should wait until Beta to back this out so we can get more feedback from the Aurora channel users on this change.
[Approval Request Comment]
Regression caused by (bug #): not a regression, feature's not ready yet
User impact if declined: user's will get a worse first-impression of the feature
Testing completed (on m-c, etc.): no testing, we want to keep it enabled on nightly and fx13
Risk to taking this patch (and alternatives if risky): possible test breakage between the feature getting enabled and the disabling of it, but none expected.
String changes made by this patch: none.
Attachment #605096 - Flags: review?
Attachment #605096 - Flags: approval-mozilla-aurora?
Attachment #605096 - Flags: review? → review?(gavin.sharp)
(In reply to Jared Wein [:jaws] from comment #45)
> Created attachment 605096 [details] [diff] [review]
> Backout of enabling general.smoothScroll from Firefox 12

Pushed to try server: https://tbpl.mozilla.org/?tree=Try&rev=500df344b8ff
Attachment #605096 - Flags: review?(gavin.sharp) → review+
Comment on attachment 605096 [details] [diff] [review]
Backout of enabling general.smoothScroll from Firefox 12

[Triage Comment]
Pref change - approved for Aurora 12.
Attachment #605096 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Backed out from Aurora12:
https://hg.mozilla.org/releases/mozilla-aurora/rev/0e04fa59464c
Target Milestone: mozilla12 → mozilla13
Try run for 500df344b8ff is complete.
Detailed breakdown of the results available here:
	https://tbpl.mozilla.org/?tree=Try&rev=500df344b8ff
Results (out of 83 total builds):
    success: 71
    warnings: 12
Builds (or logs if builds failed) available at:
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/jwein@mozilla.com-500df344b8ff
I think we should back this out a second time from aurora because of bug 737758. The fact that the behavior is unintentionally inconsistent across platforms means that developers and UX people on Windows may be unaware of the behavior on other platforms, and vice versa, so it's not clear that this is in a good shape across the board.
I've just updated to beta on an old Windows XP machine (not so old: Intel single core ~2GHz, 1 GB RAM, NVIDIA GeForce 6 series). The user experience with smooth scrolling isn't good at all. Maybe we should fix bugs blocking bug 710372 before enabling the pref by default.
(In reply to Marco Castelluccio from comment #51)
> I've just updated to beta on an old Windows XP machine (not so old: Intel
> single core ~2GHz, 1 GB RAM, NVIDIA GeForce 6 series). The user experience
> with smooth scrolling isn't good at all. Maybe we should fix bugs blocking
> bug 710372 before enabling the pref by default.

please file a new bug for this.
(In reply to Taras Glek (:taras) from comment #52)
> please file a new bug for this.

It was only an advice, I can't open a new bug because I haven't direct access to that machine and so I can't do any test.
As far as I've noticed the worse problem was related to screen refresh, so bug 702463 could have resolved it.
Whiteboard: [Snappy] → [Snappy][qa+]
Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0
Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0

Verified that Smooth Scrolling is enabled by default (Options>Advanced>General>Use smooth scrolling is checked and general.smoothScroll pref is "true" in about config)

Marking VERIFIED in Firefox 13.
Status: RESOLVED → VERIFIED
Whiteboard: [Snappy][qa+] → [Snappy][qa!]
Depends on: 763825
Depends on: 763831
Component: Layout: View Rendering → Layout: Web Painting
Regressions: 1579148
Regressions: 1719561
You need to log in before you can comment on or make changes to this bug.