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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageBitmap-transferable.html

Issue 1423513005: Reland of: Make Imagebitmap Transferable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: should-work code Created 5 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageBitmap-transferable-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <body>
4 <canvas id="canvas" width="3" height="2"></canvas>
5 <script src="../../resources/js-test.js"></script>
6 <script>
7 jsTestIsAsync = true;
8 var worker = new Worker('./resources/canvas-ImageBitmap-transferable.js');
9
10 description("Tests that ImageBitmap is transferable and that the pixel data surv ives the trip, as well as createImageBitmap(ImageBitmap) works on worker thread" );
11
12 var imageWidth = 3;
13 var imageHeight = 2;
14 var bitmapWidth;
15 var bitmapHeight;
16 var newImage;
17 var newImageBitmap;
18 var image = new ImageData(new Uint8ClampedArray(
19 [255, 0, 0, 255,
20 0, 255, 0, 255,
21 255, 255, 255, 127,
22 0, 0, 0, 64,
23 12, 34, 56, 64,
24 12, 34, 56, 127]),
25 imageWidth, imageHeight);
26 var context = document.getElementById("canvas").getContext("2d");
27
28 createImageBitmap(image).then(imageBitmap => {
29 bitmapWidth = imageBitmap.width;
30 bitmapHeight = imageBitmap.height;
31 shouldBe("bitmapWidth", "imageWidth");
32 shouldBe("bitmapHeight", "imageHeight");
33
34 worker.postMessage({data: imageBitmap}, [imageBitmap]);
35
36 // ImageBitmap has been transfered to worker, main thread loses ownership
37 // of it, so the width and height should be 0 now.
38 bitmapWidth = imageBitmap.width;
39 bitmapHeight = imageBitmap.height;
40 shouldBe("bitmapWidth", "0");
41 shouldBe("bitmapHeight", "0");
42 });
43
44 worker.onmessage = function(e) {
45 newImageBitmap = e.data.data;
46 bitmapWidth = newImageBitmap.width;
47 bitmapHeight = newImageBitmap.height;
48
49 // Getting the ImageBitmap back from the worker thread
50 shouldBe("bitmapWidth", "imageWidth");
51 shouldBe("bitmapHeight", "imageHeight");
52
53 context.drawImage(newImageBitmap, 0, 0);
54 newImage = context.getImageData(0, 0, imageWidth, imageHeight);
55
56 // newImage is not necessary the same as imageData because of
57 // multiplying and dividing by alpha during the round trip, but
58 // they should be close.
59 // The alpha channel should be exactly the same.
60 shouldBeCloseTo("newImage.data[0]", "image.data[0]", 5);
61 shouldBeCloseTo("newImage.data[1]", "image.data[1]", 5);
62 shouldBeCloseTo("newImage.data[2]", "image.data[2]", 5);
63 shouldBe("newImage.data[3]", "image.data[3]");
64
65 shouldBeCloseTo("newImage.data[4]", "image.data[4]", 5);
66 shouldBeCloseTo("newImage.data[5]", "image.data[5]", 5);
67 shouldBeCloseTo("newImage.data[6]", "image.data[6]", 5);
68 shouldBe("newImage.data[7]", "image.data[7]");
69
70 shouldBeCloseTo("newImage.data[8]", "image.data[8]", 5);
71 shouldBeCloseTo("newImage.data[9]", "image.data[9]", 5);
72 shouldBeCloseTo("newImage.data[10]", "image.data[10]", 5);
73 shouldBe("newImage.data[11]", "image.data[11]");
74
75 shouldBeCloseTo("newImage.data[12]", "image.data[12]", 5);
76 shouldBeCloseTo("newImage.data[13]", "image.data[13]", 5);
77 shouldBeCloseTo("newImage.data[14]", "image.data[14]", 5);
78 shouldBe("newImage.data[15]", "image.data[15]");
79
80 shouldBeCloseTo("newImage.data[16]", "image.data[16]", 5);
81 shouldBeCloseTo("newImage.data[17]", "image.data[17]", 5);
82 shouldBeCloseTo("newImage.data[18]", "image.data[18]", 5);
83 shouldBe("newImage.data[19]", "image.data[19]");
84
85 shouldBeCloseTo("newImage.data[20]", "image.data[20]", 5);
86 shouldBeCloseTo("newImage.data[21]", "image.data[21]", 5);
87 shouldBeCloseTo("newImage.data[22]", "image.data[22]", 5);
88 shouldBe("newImage.data[23]", "image.data[23]");
89 finishJSTest();
90 }
91
92 </script>
93 </body>
94 </html>
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageBitmap-transferable-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698