imagebitmap: Add missing basic functionality (#37025)

Add missing basic functionality for ImageBitmap
https://html.spec.whatwg.org/multipage/#imagebitmap
including new variant of creation bitmap with source rectangle
https://html.spec.whatwg.org/multipage/#dom-createimagebitmap
but without support of cropping bitmap data with formatting.

Add ImageBitmap to CanvasImageSource union type
https://html.spec.whatwg.org/multipage/#canvasimagesource

Add ImageBitmap to TexImageSource for WebGL
https://registry.khronos.org/webgl/specs/latest/1.0/index.html

Testing: Improvements in the following WPT tests
 - html/canvas/element/manual/imagebitmap/*
 - html/canvas/element/manual/wide-gamut-canvas/*
 - html/semantics/embedded-content/the-canvas-element/*
 - webgl/tests/conformance/textures/image_bitmap_from*
 - webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm

Fixes: https://github.com/servo/servo/issues/34112

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-06-09 17:28:30 +03:00 committed by GitHub
parent a3c792e5aa
commit 7f536e8092
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
79 changed files with 653 additions and 1232 deletions

View file

@ -1,4 +0,0 @@
[tex-2d-alpha-alpha-unsigned_byte.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-luminance-luminance-unsigned_byte.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-rgb-rgb-unsigned_byte.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-rgb-rgb-unsigned_short_5_6_5.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-rgba-rgba-unsigned_byte.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html]
expected: ERROR
[Overall test]
expected: NOTRUN

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,10 +1,2 @@
[tex-2d-alpha-alpha-unsigned_byte.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
[WebGL test #1]
expected: FAIL
[WebGL test #3]
expected: FAIL
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-luminance-luminance-unsigned_byte.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-rgb-rgb-unsigned_byte.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-rgb-rgb-unsigned_short_5_6_5.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-rgba-rgba-unsigned_byte.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437

View file

@ -1,4 +1,2 @@
[tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN
disabled: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/437