canvas: Add OffscreenCanvas 'transferToImageBitmap' method (#37880)

Follow the HTML speficication and add missing 'transferToImageBitmap'
method to OffscreenCanvas interface.

https://html.spec.whatwg.org/multipage/#dom-offscreencanvas-transfertoimagebitmap

Testing: Improvements in the following tests
- html/canvas/offscreen/compositing/2d.composite.grid*
- html/canvas/offscreen/fill-and-stroke-styles/2d.gradient*
- html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas*
- html/canvas/offscreen/reset/2d.reset*
- html/canvas/offscreen/text/2d.text*

Fixes (partially): #34111

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-07-04 19:25:36 +03:00 committed by GitHub
parent 70b0fb840e
commit 9bd8d4f026
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 110 additions and 84 deletions

View file

@ -1,4 +0,0 @@
[offscreencanvas.filter.w.html]
expected: ERROR
[offscreencanvas]
expected: TIMEOUT

View file

@ -1,7 +1,4 @@
[offscreencanvas.resize.html]
[Verify that writing to the width and height attributes of an OffscreenCanvas works when there is a 2d context attached.]
expected: FAIL
[Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously.]
expected: FAIL

View file

@ -2,18 +2,8 @@
[Test that transferToImageBitmap returns an ImageBitmap with correct color]
expected: FAIL
[Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception]
expected: FAIL
[Test that transferToImageBitmap returns an ImageBitmap with correct width and height]
expected: FAIL
[Test that transferToImageBitmap without a context throws an exception]
[Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception]
expected: FAIL
[Test that transferToImageBitmap preserves transform]
expected: FAIL
[Test that transferToImageBitmap won't change context's property]
expected: FAIL

View file

@ -1,26 +1,10 @@
[offscreencanvas.transfer.to.imagebitmap.w.html]
expected: ERROR
[Test that call transferToImageBitmap twice returns an ImageBitmap with correct color in a worker]
expected: FAIL
[Test that transferToImageBitmap returns an ImageBitmap with correct width and height in a worker]
expected: FAIL
[Test that transferToImageBitmap returns an ImageBitmap with correct color in a worker]
expected: FAIL
[Test that call transferToImageBitmap on a detached OffscreenCanvas throws an exception in a worker]
expected: FAIL
[Test that call transferToImageBitmap without a context throws an exception in a worker]
expected: FAIL
[Test that call transferToImageBitmap preserves transform in a worker]
expected: FAIL
[Test that transferToImageBitmap won't change context's property in a worker]
expected: FAIL
[Test that call transferToImageBitmap twice on a alpha-disabled context returns an ImageBitmap with correct color in a worker]
expected: FAIL