aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrei Volykhin <andrei.volykhin@gmail.com>2025-04-15 17:44:44 +0300
committerGitHub <noreply@github.com>2025-04-15 14:44:44 +0000
commit6b38289584c659b25bd9f79817188927496f23ee (patch)
tree30982838a931579d2a17cd51940371bf2a3ce145
parent10f6f50c615eee807ed81356501afb62f12ee6ac (diff)
downloadservo-6b38289584c659b25bd9f79817188927496f23ee.tar.gz
servo-6b38289584c659b25bd9f79817188927496f23ee.zip
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>
-rw-r--r--components/script_bindings/webidls/CanvasRenderingContext2D.webidl14
-rw-r--r--tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.large.crash.html.ini3
-rw-r--r--tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.put.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.html.ini3
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.worker.js.ini3
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.worker.js.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.html.ini4
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.worker.js.ini4
13 files changed, 7 insertions, 52 deletions
diff --git a/components/script_bindings/webidls/CanvasRenderingContext2D.webidl b/components/script_bindings/webidls/CanvasRenderingContext2D.webidl
index f47de4efd29..0c4960fe6ad 100644
--- a/components/script_bindings/webidls/CanvasRenderingContext2D.webidl
+++ b/components/script_bindings/webidls/CanvasRenderingContext2D.webidl
@@ -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" };
diff --git a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini b/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
deleted file mode 100644
index 8e7dad6133e..00000000000
--- a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.create2.nonfinite.html]
- [createImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.large.crash.html.ini b/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.large.crash.html.ini
deleted file mode 100644
index 72b8407061c..00000000000
--- a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.large.crash.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.imageData.get.large.crash.html]
- [Test that canvas crash when image data cannot be allocated.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.nonfinite.html.ini b/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
deleted file mode 100644
index 8ecd9e5dc7f..00000000000
--- a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.get.nonfinite.html]
- [getImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.put.nonfinite.html.ini b/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
deleted file mode 100644
index 025b8cfdc5d..00000000000
--- a/tests/wpt/meta/html/canvas/element/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.put.nonfinite.html]
- [putImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
deleted file mode 100644
index 8e7dad6133e..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.create2.nonfinite.html]
- [createImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js.ini
deleted file mode 100644
index e8ad049fd30..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.create2.nonfinite.worker.html]
- [createImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.html.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.html.ini
deleted file mode 100644
index 72b8407061c..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.imageData.get.large.crash.html]
- [Test that canvas crash when image data cannot be allocated.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.worker.js.ini
deleted file mode 100644
index e4378518c9a..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.large.crash.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.imageData.get.large.crash.worker.html]
- [Test that canvas crash when image data cannot be allocated.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.html.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
deleted file mode 100644
index 8ecd9e5dc7f..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.get.nonfinite.html]
- [getImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.worker.js.ini
deleted file mode 100644
index 7a555682cf0..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.nonfinite.worker.js.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.get.nonfinite.worker.html]
- [getImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.html.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
deleted file mode 100644
index 025b8cfdc5d..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.put.nonfinite.html]
- [putImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.worker.js.ini
deleted file mode 100644
index 5e961ea5b5a..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.nonfinite.worker.js.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.imageData.put.nonfinite.worker.html]
- [putImageData() throws TypeError if arguments are not finite]
- expected: FAIL
-