Open Bug 1682974 Opened 3 years ago Updated 2 years ago

Investigate possible UX improvements for pinch-zooming on Windows

Categories

(Core :: Panning and Zooming, defect)

defect

Tracking

()

People

(Reporter: botond, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

A user has recently reported the following feedback about desktop zooming on Windows:

Bugs from a quick play-around (comparing with Microsoft Edge):

  • The zoom with touch pad has a weird latency not present in Edge.
  • Zoom on touchscreen is janky and jumps around.
  • Zooming in and then out often (but not consistently) stops working half way through the gesture.
  • Scrolling behaviour while zoomed is wildly different to native apps like Edge. Scrolling is extremely fast and has some kind of acceleration.
  • Pinching while scrolling on the touchscreen lags badly.

It's not clear how actionable this is, as the points are fairly vague, but it's probably worth doing some comparisons with Edge to see if any of these issues are readily reproducible.

Note that the experience reported does vary from user to user, for example another user in the same thread reports:

Cannot confirm any of these points (Win 10 pro, Thinkpad T490p). Everything is buttery smooth, and does exactly what I would expect it to do, both zooming and scrolling. (I only tied the touch screen, though.)

Maybe check your touchpad and touchscreen drivers.

If anyone does experience one or more of the issues in the list above, I would encourage you to provide more details (feel free to file a separate bug and link it to this one).

(In reply to Botond Ballo [:botond] from comment #0)

  • Scrolling behaviour while zoomed is wildly different to native apps like Edge. Scrolling is extremely fast and has some kind of acceleration.

This point might be easier to test. Perhaps the scroll amount is staying constant in layout coords and therefore increasing actually screen space?

I can confirm two of the mentioned points:

Scrolling behaviour while zoomed is wildly different to native apps like Edge. Scrolling is extremely fast and has some kind of acceleration.

When zoomed in, and scrolling with a touchpad, Firefox feels faster than Edge. I think that's generally the case and not related to zoom, but it feels more "pronounced" when zoomed in.

Pinching while scrolling on the touchscreen lags badly.

In Edge, you can scroll and pinch-zoom simultaneously on a touch screen. In Firefox you can't do both gestures together. One will take over and block the other one. Which one wins seems a bit random (I think it leans more towards scrolling). This feels laggy and requires users to lift their fingers and start a new gesture.

(In reply to Martin Balfanz [:mbalfanz] from comment #3)

In Edge, you can scroll and pinch-zoom simultaneously on a touch screen. In Firefox you can't do both gestures together. One will take over and block the other one. Which one wins seems a bit random (I think it leans more towards scrolling). This feels laggy and requires users to lift their fingers and start a new gesture.

For touchscreens, this was a conscious design choice. It's called "pinch locking" (intended to be analogous to "axis locking" for horizontal vs. vertical gestures), and it was added in bug 1180865. The motivation was, if you're doing a two-finger touch scroll, to avoid zooming in and out by a small amount due to small changes in the distance between your fingers.

We can revisit this if it's not in line with platform conventions on some platforms, or consider enhancing the feature to allow breaking the lock within a single gesture.

Depends on: 1720084
No longer depends on: 1720084

I tested some on my Thinkpad T460p.

(In reply to Botond Ballo [:botond] from comment #0)

Bugs from a quick play-around (comparing with Microsoft Edge):

  • The zoom with touch pad has a weird latency not present in Edge.

This is true on my laptop, zoom in/out is jitter for some reasons.
here is a profile result; https://share.firefox.dev/3NiyD0O, I took it on the ycombinator site in comment 0.

  • Zoom on touchscreen is janky and jumps around.

Not tested since I don't have any touchscreen devices.

  • Zooming in and then out often (but not consistently) stops working half way through the gesture.

Can't see this issue at all.

  • Scrolling behaviour while zoomed is wildly different to native apps like Edge. Scrolling is extremely fast and has some kind of acceleration.

It's hard to tell. In my naive testing, I feel Edge scrolling on zoomed in contents is slightly faster than Firefox. I tried it on the ycombinator site and also tried to match the browser window size and zoomed in level.

During this try I noticed that the maximum zoom level both on Edge/Chrome is approximately 3.999..., rather on Firefox it's 5.666666507720947, that's the cause of feeling, I guess?

  • Pinching while scrolling on the touchscreen lags badly.

Not tested either.

(In reply to Hiroyuki Ikezoe (:hiro) from comment #5)

  • Zoom on touchscreen is janky and jumps around.

Not tested since I don't have any touchscreen devices.

I tested this, and I think I see what the reporter meant:

In Edge, everything including text is subject to a GPU scale transform while the gesture is in progress, and the text is only re-rasterized when the fingers are released. By contrast, in Firefox, we re-rasterize the text in WebRender at every zoom level. This results in two noticeable differences:

  1. In Edge, the zoom level is a bit more responsive in tracking your finger, presumably because they have less work to do (the scale transform is less expensive than re-rasterizing text).
  2. In Edge, the text size changes continuously as you zoom, while in Firefox there are discrete jumps between different glyph sizes, presumably because we don't rasterize at dfferent glyph sizes for every individual zoom level. The effect is not very noticeable, but you can see it if you pay close attention.
  • Scrolling behaviour while zoomed is wildly different to native apps like Edge. Scrolling is extremely fast and has some kind of acceleration.

It's hard to tell. In my naive testing, I feel Edge scrolling on zoomed in contents is slightly faster than Firefox. I tried it on the ycombinator site and also tried to match the browser window size and zoomed in level.

During this try I noticed that the maximum zoom level both on Edge/Chrome is approximately 3.999..., rather on Firefox it's 5.666666507720947, that's the cause of feeling, I guess?

It's actually meant to be 10x, but is less in practice due to bug 1700865.

Anyways, I would not consider the difference in max scales in and of itself to be a bug; in bug 1753814 we are adding a pref to control the max scale, and if we want to change the default we can consider that separately (would probably want that to be based on wider feedback).

  • Pinching while scrolling on the touchscreen lags badly.

Not tested either.

I assume this means "a two-finger gesture on the touchscreen which both scrolls (focus point changes) and pinches (finger span changes)". I do not see a noticeable difference between Firefox and Edge here. It's possible there is a frame or two of extra delay in Firefox, but I think that's a known issue with potential improvements planned in bug 1753334 and Markus' work.

Depends on: 1761384

(In reply to Botond Ballo [:botond] from comment #6)

(In reply to Hiroyuki Ikezoe (:hiro) from comment #5)

  • Zoom on touchscreen is janky and jumps around.

Not tested since I don't have any touchscreen devices.

I tested this, and I think I see what the reporter meant:

In Edge, everything including text is subject to a GPU scale transform while the gesture is in progress, and the text is only re-rasterized when the fingers are released. By contrast, in Firefox, we re-rasterize the text in WebRender at every zoom level. This results in two noticeable differences:

This is pretty much same as the touchpad case, I believe. I filed bug 1761384 for the issue.

You need to log in before you can comment on or make changes to this bug.