Index: Source/core/paint/ImagePainter.cpp |
diff --git a/Source/core/paint/ImagePainter.cpp b/Source/core/paint/ImagePainter.cpp |
index 04ebee1f5e6d0eee700066c2648c8239f05b760e..e4760e338f10fd54c9401a89a3bf9ed3e5dc6a30 100644 |
--- a/Source/core/paint/ImagePainter.cpp |
+++ b/Source/core/paint/ImagePainter.cpp |
@@ -200,16 +200,20 @@ void ImagePainter::paintIntoRect(GraphicsContext* context, const LayoutRect& rec |
InspectorInstrumentation::didPaintImage(&m_renderImage); |
} |
+float deviceScaleFactor(LocalFrame*); |
jbroman
2014/11/14 19:13:47
drive-by: Why not include Page.h? Declaring extern
enne (OOO)
2014/11/14 19:15:59
What is this, an extern? Maybe you should just add
chrishtr
2014/11/14 19:16:09
Done.
|
+ |
void ImagePainter::paintBoxDecorationBackground(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
// Don't anti-alias the background of an image. See crbug.com/423834 for the reason why. |
// However, don't turn off anti-aliasing for subclasses such as video. |
- bool shouldAntialias = !m_renderImage.isRenderImage(); |
+ // An additional mega-hack here is to turn off anti-aliasing only for situations with a large device scale factor |
+ // The referenced bug gives more details about a device with a scale factor greater than 3.4). |
+ bool shouldAntialias = !m_renderImage.isRenderImage() || blink::deviceScaleFactor(m_renderImage.frame()) < 3.4; |
bool oldShouldAntialias = paintInfo.context->shouldAntialias(); |
- |
paintInfo.context->setShouldAntialias(shouldAntialias); |
BoxPainter(m_renderImage).paintBoxDecorationBackground(paintInfo, paintOffset); |
+ |
paintInfo.context->setShouldAntialias(oldShouldAntialias); |
} |