Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker.html

Issue 1971353002: Add ImageData-related API to OffscreenCanvasRenderingContext2D (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add expected results to interface listings Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker.html
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker.html b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c8ca1bbfbd7ed2fb703dc8a51d03b655bd03757
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html>
+<html>
+<body>
+<canvas id='output' width='150' height='150'></canvas>
+<script src="../../resources/js-test.js"></script>
+<script id='myWorker' type='text/worker'>
+function prefilledImageData() {
+ var myImageData = new ImageData(10, 10);
+ var dataArr = myImageData.data;
+ for (var i = 0; i < dataArr.length; i+=4) {
+ dataArr[i + 0] = 255;
+ dataArr[i + 1] = 100;
+ dataArr[i + 2] = 0;
+ dataArr[i + 3] = 255;
+ }
+ return myImageData;
+}
+function postMessageToMain(t, c) {
+ self.postMessage({topic: t, content: c});
+}
+self.onmessage = function(e) {
+ var aCanvas = new OffscreenCanvas(10, 10);
+ var ctx = aCanvas.getContext('2d');
+
+ // createImageData(sx, sy)
+ try {
+ var blankImageData = ctx.createImageData(10, 10);
+ postMessageToMain("createImageData(sx, sy)", blankImageData.data[1]);
+ } catch (err) {
+ postMessageToMain("createImageData(sx, sy)", err);
+ }
+
+ // createImageData(ImageData)
+ try {
+ var blankImageData = ctx.createImageData(prefilledImageData());
+ postMessageToMain('createImageData(ImageData)', blankImageData.data[1]);
+ } catch (err) {
+ postMessageToMain('createImageData(ImageData)', err);
+ }
+
+ // getImageData(sx, sy, sw, sh)
+ try {
+ ctx.fillStyle = "blue";
+ ctx.fillRect(2, 0, 3, 1);
+ var imageDataFromCanvas = ctx.getImageData(2, 0, 3, 1);
+ postMessageToMain('getImageData(sx, sy, sw, sh)', imageDataFromCanvas.data[2]);
+ } catch (err) {
+ postMessageToMain('getImageData(sx, sy, sw, sh)', err);
+ }
+
+ // putImageData(ImageData, dx, dy)
+ try {
+ ctx.putImageData(prefilledImageData(), 0, 0);
+ var imageDataFromCanvas = ctx.getImageData(0, 0, 1, 1);
+ postMessageToMain("putImageData(ImageData, dx, dy)", imageDataFromCanvas.data[1]);
+ } catch (err) {
+ postMessageToMain("putImageData(ImageData, dx, dy)", err);
+ }
+
+ // putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight)
+ ctx.clearRect(0, 0, aCanvas.width, aCanvas.height);
+ try {
+ ctx.putImageData(prefilledImageData(), 0, 0, 3, 0, 1, 1);
+ var imageDataFromCanvas = ctx.getImageData(3, 0, 1, 1);
+ postMessageToMain("putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight)", imageDataFromCanvas.data[1]);
+ } catch (err) {
+ postMessageToMain("putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) failed: ", err);
+ }
+
+ postMessageToMain("", "");
+};
+</script>
+<script>
+if (window.testRunner) {
+ testRunner.waitUntilDone();
+}
+
+var blob = new Blob([document.getElementById('myWorker').textContent]);
+var worker = new Worker(URL.createObjectURL(blob));
+worker.addEventListener('message', msg => {
+ var data = msg.data;
+ switch (data.topic) {
+ case "createImageData(sx, sy)":
+ if (data.content == "0")
+ testPassed("createImageData(sx, sy) creates blank image correctly");
+ else
+ testFailed("createImageData(ImageData) failed: " + data.content);
+ break;
+ case "createImageData(ImageData)":
+ if (data.content == "0")
+ testPassed("createImageData(ImageData) creates blank image correctly");
+ else
+ testFailed("createImageData(ImageData) failed: " + data.content);
+ break;
+ case "getImageData(sx, sy, sw, sh)":
+ if (data.content == "255")
+ testPassed("getImageData(sx, sy, sw, sh) is successful.");
+ else
+ testFailed("getImageData(sx, sy, sw, sh) failed: " + data.content);
+ break;
+ case "putImageData(ImageData, dx, dy)":
+ if (data.content == "100")
+ testPassed("putImageData(ImageData, dx, dy) is successful.");
+ else
+ testFailed("putImageData(ImageData, dx, dy) failed: " + data.content);
+ break;
+ case "putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight)":
+ if (data.content == "100")
+ testPassed("putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) is successful.");
+ else
+ testFailed("putImageData(ImageData, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) failed: " + data.content);
+ break;
+ default:
+ if (window.testRunner) {
+ testRunner.notifyDone();
+ }
+ break;
+ }
+});
+worker.postMessage("");
+
+</script>
+</body>
+
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-2d-imageData-in-worker-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698