diff --git a/dom/canvas/ImageBitmapRenderingContext.cpp b/dom/canvas/ImageBitmapRenderingContext.cpp index f6af848bda8c..50a0a8395332 100644 --- a/dom/canvas/ImageBitmapRenderingContext.cpp +++ b/dom/canvas/ImageBitmapRenderingContext.cpp @@ -62,23 +62,18 @@ void ImageBitmapRenderingContext::GetCanvas( } } -void ImageBitmapRenderingContext::TransferImageBitmap(ImageBitmap& aImageBitmap, - ErrorResult& aRv) { - TransferFromImageBitmap(&aImageBitmap, aRv); +void ImageBitmapRenderingContext::TransferImageBitmap( + ImageBitmap& aImageBitmap) { + TransferFromImageBitmap(&aImageBitmap); } void ImageBitmapRenderingContext::TransferFromImageBitmap( - ImageBitmap* aImageBitmap, ErrorResult& aRv) { + ImageBitmap* aImageBitmap) { ResetBitmap(); if (aImageBitmap) { mImage = aImageBitmap->TransferAsImage(); - if (!mImage) { - aRv.ThrowInvalidStateError("The input ImageBitmap has been detached"); - return; - } - if (aImageBitmap->IsWriteOnly()) { if (mCanvasElement) { mCanvasElement->SetWriteOnly(); diff --git a/dom/canvas/ImageBitmapRenderingContext.h b/dom/canvas/ImageBitmapRenderingContext.h index e34781ec1836..3aea0fcb4750 100644 --- a/dom/canvas/ImageBitmapRenderingContext.h +++ b/dom/canvas/ImageBitmapRenderingContext.h @@ -57,8 +57,8 @@ class ImageBitmapRenderingContext final void GetCanvas( Nullable& retval) const; - void TransferImageBitmap(ImageBitmap& aImageBitmap, ErrorResult& aRv); - void TransferFromImageBitmap(ImageBitmap* aImageBitmap, ErrorResult& aRv); + void TransferImageBitmap(ImageBitmap& aImageBitmap); + void TransferFromImageBitmap(ImageBitmap* aImageBitmap); // nsICanvasRenderingContextInternal virtual int32_t GetWidth() override { return mWidth; } diff --git a/dom/webidl/ImageBitmapRenderingContext.webidl b/dom/webidl/ImageBitmapRenderingContext.webidl index 83027c282634..2d6be2b80608 100644 --- a/dom/webidl/ImageBitmapRenderingContext.webidl +++ b/dom/webidl/ImageBitmapRenderingContext.webidl @@ -34,10 +34,9 @@ interface ImageBitmapRenderingContext { // would be covered by the canvas's bitmap which are not covered by // the supplied ImageBitmap are rendered transparent black. Any CSS // styles affecting the display of the canvas are applied as usual. - [Throws] undefined transferFromImageBitmap(ImageBitmap? bitmap); // Deprecated version of transferFromImageBitmap - [Deprecated="ImageBitmapRenderingContext_TransferImageBitmap", Throws] + [Deprecated="ImageBitmapRenderingContext_TransferImageBitmap"] undefined transferImageBitmap(ImageBitmap bitmap); }; diff --git a/testing/web-platform/meta/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html.ini b/testing/web-platform/meta/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html.ini index 722cd8bb7f02..70d27eec8e6b 100644 --- a/testing/web-platform/meta/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html.ini +++ b/testing/web-platform/meta/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html.ini @@ -1,3 +1,5 @@ [transferFromImageBitmap-detached.html] expected: - if (os == "android") and fission: [TIMEOUT, OK] \ No newline at end of file + if (os == "android") and fission: [TIMEOUT, OK] + [Test transferFromImageBitmap(image) with a detached image should throw InvalidStateError] + expected: FAIL