This commit is contained in:
Cameron Kaiser 2020-06-14 20:27:29 -07:00
parent 689819e12b
commit 7850b17a7d

View File

@ -545,17 +545,23 @@ HTMLCanvasElement::CopyInnerTo(Element* aDest)
HTMLCanvasElement* dest = static_cast<HTMLCanvasElement*>(aDest); HTMLCanvasElement* dest = static_cast<HTMLCanvasElement*>(aDest);
dest->mOriginalCanvas = this; dest->mOriginalCanvas = this;
nsCOMPtr<nsISupports> cxt; // We make sure that the canvas is not zero sized since that would cause
dest->GetContext(NS_LITERAL_STRING("2d"), getter_AddRefs(cxt)); // the DrawImage call below to return an error, which would cause printing
RefPtr<CanvasRenderingContext2D> context2d = // to fail.
static_cast<CanvasRenderingContext2D*>(cxt.get()); nsIntSize size = GetWidthHeight();
if (context2d && !mPrintCallback) { if (size.height > 0 && size.width > 0) {
CanvasImageSource source; nsCOMPtr<nsISupports> cxt;
source.SetAsHTMLCanvasElement() = this; dest->GetContext(NS_LITERAL_STRING("2d"), getter_AddRefs(cxt));
ErrorResult err; RefPtr<CanvasRenderingContext2D> context2d =
context2d->DrawImage(source, static_cast<CanvasRenderingContext2D*>(cxt.get());
0.0, 0.0, err); if (context2d && !mPrintCallback) {
rv = err.StealNSResult(); CanvasImageSource source;
source.SetAsHTMLCanvasElement() = this;
ErrorResult err;
context2d->DrawImage(source,
0.0, 0.0, err);
rv = err.StealNSResult();
}
} }
} }
return rv; return rv;