Bug 832446 - Don't use the high-quality downscaler on multipart images. r=jrmuizel a=akeybl
--- a/image/src/RasterImage.cpp
+++ b/image/src/RasterImage.cpp
@@ -2899,18 +2899,20 @@ IsDownscale(const gfxSize& scale)
}
bool
RasterImage::CanScale(gfxPattern::GraphicsFilter aFilter,
gfxSize aScale)
{
// The high-quality scaler requires Skia.
#ifdef MOZ_ENABLE_SKIA
+ // We don't use the scaler for animated or multipart images to avoid doing a
+ // bunch of work on an image that just gets thrown away.
if (gHQDownscaling && aFilter == gfxPattern::FILTER_GOOD &&
- !mAnim && mDecoded && IsDownscale(aScale)) {
+ !mAnim && mDecoded && !mMultipart && IsDownscale(aScale)) {
gfxFloat factor = gHQDownscalingMinFactor / 1000.0;
return (aScale.width < factor || aScale.height < factor);
}
#endif
return false;
}