зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1331925 - blob returns null if canvas width or height is zero. sr=smaug
This commit is contained in:
Родитель
32dab0d403
Коммит
8da5275969
|
@ -53,7 +53,7 @@ CanvasRenderingContextHelper::ToBlob(JSContext* aCx,
|
|||
|
||||
RefPtr<Blob> newBlob = Blob::Create(mGlobal, blob->Impl());
|
||||
|
||||
mBlobCallback->Call(*newBlob, rv);
|
||||
mBlobCallback->Call(newBlob, rv);
|
||||
|
||||
mGlobal = nullptr;
|
||||
mBlobCallback = nullptr;
|
||||
|
@ -65,6 +65,16 @@ CanvasRenderingContextHelper::ToBlob(JSContext* aCx,
|
|||
RefPtr<BlobCallback> mBlobCallback;
|
||||
};
|
||||
|
||||
nsIntSize elemSize = GetWidthHeight();
|
||||
if (elemSize.width == 0 || elemSize.height == 0) {
|
||||
// According to spec, blob should return null if either its horizontal
|
||||
// dimension or its vertical dimension is zero. See link below.
|
||||
// https://html.spec.whatwg.org/multipage/scripting.html#dom-canvas-toblob
|
||||
BlobCallback* blobCallback = &aCallback;
|
||||
blobCallback->Call(nullptr, aRv);
|
||||
return;
|
||||
}
|
||||
|
||||
RefPtr<EncodeCompleteCallback> callback =
|
||||
new EncodeCallback(aGlobal, &aCallback);
|
||||
|
||||
|
|
|
@ -68,4 +68,4 @@ interface MozCanvasPrintState
|
|||
|
||||
callback PrintCallback = void(MozCanvasPrintState ctx);
|
||||
|
||||
callback BlobCallback = void(Blob blob);
|
||||
callback BlobCallback = void(Blob? blob);
|
||||
|
|
Загрузка…
Ссылка в новой задаче