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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-convertToBlob-noIdleTask-worker.html

Issue 2613733002: Enforce OffscreenCanvas.convertToBlob to terminate after idling for too long (Closed)
Patch Set: test Created 3 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 <script src="../../resources/testharness.js"></script>
2 <script src="../../resources/testharnessreport.js"></script>
3 <script id="myWorker" type="text/worker">
4 self.onmessage = function(e) {
5 var offscreenCanvas = new OffscreenCanvas(4, 4);
6 var ctx = offscreenCanvas.getContext("2d");
7 ctx.fillStyle = "#FF0102";
8 ctx.fillRect(0, 0, 4, 4);
9
10 offscreenCanvas.convertToBlob().then(function(blob) {
11 self.postMessage(blob);
12 });
13
14 };
15 </script>
16 <script type = 'text/javascript'>
17 // In WebKit Layout Tests, flag "--enable-threaded-compositing", which is
Justin Novosad 2017/01/06 15:49:21 same here
18 // essential for idle task running, is not turned on by default. This makes
19 // it convenient to test the case when CanvasAsyncBlobCreator is idling for
20 // too long and switching to forcing encoding in a normal task.
21 // Passing this test means that the enforcing mechanism in
22 // CanvasAsyncBlobCreator for OffscreenCanvas case is working as expected.
23 var w = 4;
24 var h = 4;
25
26 var newImg = new Image();
27 function imageLoaded() {
28 var canvas2 = document.createElement("canvas");
29 canvas2.width = w;
30 canvas2.height = h;
31 var ctx2 = canvas2.getContext("2d");
32 ctx2.drawImage(newImg, 0, 0, w, h);
33
34 var imageData = ctx2.getImageData(0, 0, w, h).data;
35 assert_equals(imageData[0], 255);
36 assert_equals(imageData[1], 1);
37 assert_equals(imageData[2], 2);
38 assert_equals(imageData[3], 255);
39 testImageFromOffscreen.done();
40 }
41
42 var workerBlob = new Blob([document.getElementById('myWorker').textContent]);
43 var worker = new Worker(URL.createObjectURL(workerBlob));
44 worker.addEventListener("message", function(msg) {
45 var blob = msg.data;
46 newImg.src = URL.createObjectURL(blob);
47 });
48
49 var testImageFromOffscreen = async_test(
50 "Check if the image loaded from blob returned by " +
51 "OffscreenCanvas.convertToBlob() have expected image data values.");
52
53 testImageFromOffscreen.step(function() {
54 newImg.onload = testImageFromOffscreen.step_func(imageLoaded);
55 worker.postMessage("");
56 });
57
58 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698