I've attached a minimal test page, which applies a vertical linear
gradient to the body. The body contains several thousand paragraphs,
and as a result takes up more than 64k pixels of height. If I attempt
to scroll this page to the bottom, either by pressing end or by holding
down page-down, the scrolling stops somewhere in the middle, right
around the 64k pixel mark. Once scrolling stops, the page no longer
responds to any attempt to scroll with either the keyboard or the
scrollbar. Force-refreshing the page returns to the top.
This depends specifically on rendered height: if I increase or decrease
the font size, the point at which scrolling freezes will move up or down
in the text accordingly. If I decrease the font size enough, I can
reach the bottom of the page without triggering the problem. The freeze
doesn't always occur at exactly the same location, but generally within
a few dozen lines of the 64k pixel mark.
I can reproduce this scroll freeze 100% reliably with this test case.
The test case seems oddly fragile in a few ways. If I drastically
increase the font size on the html element (for instance, going to
50px), the problem goes away, but the gradient still mis-renders in many
places in the page (restarting, or showing a solid color). If I replace
the relative 1.1em font-size on body with an absolute one, even one
resulting in about the same size, I see the same behavior: no scrolling
issue, but a mis-rendered gradient.
Reported upstream as https://bugzilla.mozilla.org/show_bug.cgi?id=916624
, but I've reported it here as well because it may specifically occur
with Debian's build that uses system graphics libraries. Two testers
using upstream builds said they could not reproduce the scroll freeze,
though they could observe incorrect gradient rendering.
I can reproduce this in safe mode, so it doesn't depend on configuration
or extensions.
- Josh Triplett