Index: third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
index 3d4ef0a1a3c796c9c8924e38c78b2339033c701f..e5b4a2b4db5de78fa9b5dd1cbcd68d44fd68f5bd 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
@@ -1290,6 +1290,12 @@ PassRefPtr<Image> HTMLCanvasElement::getSourceImageForCanvas( |
? buffer()->newSkImageSnapshot(hint, reason) |
: createTransparentImage(size())->imageForCurrentFrame(); |
} else { |
+ if (ExpensiveCanvasHeuristicParameters:: |
+ DisableAccelerationToAvoidReadbacks && |
+ !RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled() && |
+ hint == PreferNoAcceleration && m_context->isAccelerated() && |
+ hasImageBuffer()) |
+ buffer()->disableAcceleration(); |
RefPtr<blink::Image> image = renderingContext()->getImage(hint, reason); |
skImage = image ? image->imageForCurrentFrame() |
: createTransparentImage(size())->imageForCurrentFrame(); |