canvas: Add "EnforceRange" attribute to CanvasImageData interface (#36546)

Add missing "EnforceRange" attribute to interface methods
https://html.spec.whatwg.org/multipage/canvas.html#canvasimagedata

--
- [x] ./mach build -d does not report any errors
- [x] ./mach test-tidy does not report any errors
- [x] There are tests for these changes
tests/wpt/tests/html/canvas/element/pixel-manipulation/2d.imageData*
tests/wpt/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData*

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-04-15 17:44:44 +03:00 committed by GitHub
parent 10f6f50c61
commit 6b38289584
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 7 additions and 52 deletions

View file

@ -165,16 +165,16 @@ interface mixin CanvasDrawImage {
interface mixin CanvasImageData {
// pixel manipulation
[Throws]
ImageData createImageData(long sw, long sh);
ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh);
[Throws]
ImageData createImageData(ImageData imagedata);
[Throws]
ImageData getImageData(long sx, long sy, long sw, long sh);
undefined putImageData(ImageData imagedata, long dx, long dy);
undefined putImageData(ImageData imagedata,
long dx, long dy,
long dirtyX, long dirtyY,
long dirtyWidth, long dirtyHeight);
ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy,
[EnforceRange] long sw, [EnforceRange] long sh);
undefined putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy);
undefined putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy,
[EnforceRange] long dirtyX, [EnforceRange] long dirtyY,
[EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
};
enum CanvasLineCap { "butt", "round", "square" };

View file

@ -1,4 +0,0 @@
[2d.imageData.create2.nonfinite.html]
[createImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.imageData.get.large.crash.html]
[Test that canvas crash when image data cannot be allocated.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.get.nonfinite.html]
[getImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.put.nonfinite.html]
[putImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.create2.nonfinite.html]
[createImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.create2.nonfinite.worker.html]
[createImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.imageData.get.large.crash.html]
[Test that canvas crash when image data cannot be allocated.]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.imageData.get.large.crash.worker.html]
[Test that canvas crash when image data cannot be allocated.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.get.nonfinite.html]
[getImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.get.nonfinite.worker.html]
[getImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.put.nonfinite.html]
[putImageData() throws TypeError if arguments are not finite]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.imageData.put.nonfinite.worker.html]
[putImageData() throws TypeError if arguments are not finite]
expected: FAIL