imagebitmap: Add support of Blob as ImageBitmapSource (#37560)

Follow to the HTML specification and support of Blob as
ImageBitmapSource
to able use it as intermediate instance in "fetch() -> Blob ->
ImageBitmap" execution sequence.
https://html.spec.whatwg.org/multipage/#imagebitmapsource

The specification says what these steps must run in parallel
(outside the createImageBitmap task), but currently loading bytes from
Blob
and later image decoding happen in synchronous order while
promise is fullfilled or rejected on bitmap task source.
https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:blob-4

Testing: Improvements in the following WPT tests
- html/canvas/element/compositing/2d.composite*
- html/canvas/element/drawing-images-to-the-canvas/2d.drawImage*
- html/canvas/element/manual/imagebitmap/createImageBitmap*
- html/canvas/offscreen/compositing/2d.composite
- html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage
- webgl/tests/conformance/textures/image_bitmap_from_blob/*

Fixes (partially): #34112

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-06-20 09:53:04 +03:00 committed by GitHub
parent 9dc1dde7cb
commit a426a2e884
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
233 changed files with 209 additions and 1208 deletions

View file

@ -1,6 +0,0 @@
[tex-2d-alpha-alpha-unsigned_byte.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-luminance-luminance-unsigned_byte.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-rgb-rgb-unsigned_byte.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-rgb-rgb-unsigned_short_5_6_5.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-rgba-rgba-unsigned_byte.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL

View file

@ -1,6 +0,0 @@
[tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html]
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL