The unwanted effect is seen at http://news.bbc.co.uk/ A screenshot is attached.
Created attachment 14882 [details] Screenshot of the bad rendering
Created attachment 14883 [details] Use CAIRO_FILTER_NEAREST to work around the issue
Created attachment 14884 [details] Use CAIRO_FILTER_NEAREST to work around the issue, take two Updated with tiny a formatting fix in the ChangeLog entry
Comment on attachment 14884 [details] Use CAIRO_FILTER_NEAREST to work around the issue, take two Looks sane enough. r=me.
Landed in r22030.
*** Bug 14016 has been marked as a duplicate of this bug. ***
Speaking to the cairo people this may not be the optimal solution to this problem. The gradient is a result of the extend method being set to CAIRO_EXTEND_NONE. If you set it to CAIRO_EXTEND_REPEAT or CAIRO_EXTEND_REFLECT the gradient problem goes away, and it allows for better scaling quality using CAIRO_FILTER_GOOD etc.