| 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();
|
|
|