Smooth Scrolling: How a Web Browser Removes Jank
Here’s the scenario: it’s about 6 AM on a weekday, and your alarm didn’t go off. You’re rushing to catch a flight that you’re probably going to be late for. Your phone is displaying your approaching Lyft car, which you figure might help you win some time. Hurrying to get the info from the airline’s site on your laptop (because you forgot to download the app, of course), you’re scrolling through the obligatory travel disclosures when your browser window suddenly freezes on you, mid-scroll. Right then the Lyft arrives, the driver sends you a text. Frustration ensues as you try in vain to get the browser to respond; the Lyft honks outside when suddenly, the page responds to your scrolling efforts, and you end up at the bottom of the page. Thankfully, you learn that the flight is delayed 20 minutes, but no thanks to your slow browser!
This responsiveness issue is known as jank, and it’s a problem we’ve addressed with the rollout of Electrolysis (e10s), our multi-process browser functionality. The solution to scrolling-induced browser jank is called asynchronous panning and zooming (APZ). APZ allows content to be pre-rendered before it enters the viewing window.
Though we’ve had variations of APZ around for a while, our new multi-process Firefox makes scrolling smoother and more responsive than ever. With the older, single-process Firefox browser, jank was the result of the browser being unable to handle the demands of the juggling required to display a web page at the same time as user input (like scrolling).
Multiple processes means that your clicks and scrolls can be managed much more efficiently because they are immediately processed, rather than getting stalled behind other content (and making you late for your flight.)