Skip to main content

Scrolling in Firefox to get a lot better thanks to APZ

If you run a Nightly version of the Firefox web browser with E10s enabled, you may have noticed that scrolling and zooming improved after you have installed the latest update of that particular version of Firefox.

Nightly is the cutting edge channel of Firefox that gets new feature additions first. It may take up to three release cycles -- three six week periods -- for features to land in the stable version of Firefox. Before they do, they are usually enabled in the developer and beta version first.

E10s is Firefox's multi-process architecture that is enabled in Nightly but not in Firefox stable. While that means that it will take months before the feature lands in Firefox stable, it is definitely something that Firefox users can look forward to.

If you run Firefox Nightly with E10s enabled, then you don't need to do anything and should notice the better scrolling and zooming behavior of the browser immediately.

Please note that APZ is only enabled if you run Firefox with E10s enabled. The preference that determines whether APZ is enabled or not is layers.async-pan-zoom.enabled.

firefox apz scrolling

The status of the preference is set to true if all requirements are met. You may run into issues on some sites currently as noted on Bugzilla@Mozilla. If you do, you may want to toggle the preference to set it to false and deactivate the new scrolling behavior for now.

APZ is an acronym for the Async Pan Zoom module which enables asynchronous panning and zooming.

For zooming, this means that the APZ reacts to a pinch gesture immediately and instructs the compositor to scale the already-rendered layers at whatever resolution they have been rendered (so e.g. text becomes more blurry as you zoom in), and meanwhile sends a request to Gecko to re-render the content at a new resolution (with sharp text and all).

For panning, this means that the APZ asks Gecko to render a portion of a scrollable layer, called the "display port", that's larger than the visible portion. It then reacts to a pan gesture immediately, asking the compositor to render a different portion of the displayport (or, if the displayport is not large enough to cover the new visible region, then nothing in the portions it doesn't cover - this is called checkerboarding), and meanwhile sends a request to Gecko to render a new displayport.

Detailed information about APZ in Firefox are available on Mozilla's Wiki website.

I have created a short demonstration video that visualizes the difference between Firefox 39 (Stable) and Firefox 42 (Nightly). Note that the real-world experience is much better than what is shown in the video.

Now you: Have you tried Firefox with APZ enabled yet?

This article was first seen on ComTek's "TekBits" Technology News

HOME