Chromium Code Reviews| 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 f2bfec4694d5ea0db8288d6798317bef582b67cc..526dcca8c5648267c14b5e3b53a657c4616f2ca1 100644 |
| --- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| +++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| @@ -1101,10 +1101,16 @@ PassRefPtr<Image> HTMLCanvasElement::getSourceImageForCanvas(SourceImageStatus* |
| m_context->paintRenderingResultsToCanvas(BackBuffer); |
| } |
| - RefPtr<SkImage> image = buffer()->newSkImageSnapshot(hint, reason); |
| - if (image) { |
| + RefPtr<SkImage> skImage; |
| + RefPtr<blink::Image> image = renderingContext()->getImage(); |
| + if (image) |
| + skImage = image->imageForCurrentFrame(); |
| + else |
| + skImage = buffer()->newSkImageSnapshot(hint, reason); |
|
Justin Novosad
2016/08/22 20:03:02
Just realized this code may inadvertently allocate
zakerinasab
2016/08/22 20:19:09
createTransparentImage(size()) returns PassRefPtr<
|
| + |
| + if (skImage) { |
| *status = NormalSourceImageStatus; |
| - return StaticBitmapImage::create(image.release()); |
| + return StaticBitmapImage::create(skImage.release()); |
| } |
| *status = InvalidSourceImageStatus; |