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

Side by Side Diff: third_party/WebKit/LayoutTests/virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-2d-worker.html

Issue 2420203002: Implement convertToBlob() in OffscreenCanvas (Closed)
Patch Set: rebase and fix global-interface-listing-service-worker-expected.txt Created 4 years, 2 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 <img id="png"/>
2 <img id="jpeg-high"/>
3 <img id="jpeg-low"/>
4 <img id="webp-high"/>
5 <img id="webp-low"/>
6 <script id="myWorker" type="text/worker">
7 self.onmessage = function (e) {
8 var offCanvas = new OffscreenCanvas(50, 50);
9 var offctx = offCanvas.getContext("2d");
10 offctx.fillStyle = "red";
11 offctx.fillRect(0, 0, 25, 25);
12 offctx.fillStyle = "green";
13 offctx.fillRect(25, 0, 25, 25);
14 offctx.fillStyle = "blue";
15 offctx.fillRect(0, 25, 25, 25);
16 offctx.fillStyle = "black";
17 offctx.fillRect(25, 25, 25, 25);
18 offctx.strokeStyle = "yellow";
19 offctx.strokeRect(0, 0, 50, 50);
20
21 offCanvas.convertToBlob()
22 .then(function(blob) {
23 self.postMessage({version: "png", data:blob});
24 });
25
26 offCanvas.convertToBlob({type: "image/jpeg"})
27 .then(function(blob) {
28 self.postMessage({version: "jpeg-high", data:blob});
29 });
30
31 offCanvas.convertToBlob({type: "image/jpeg", quality: 0.2})
32 .then(function(blob) {
33 self.postMessage({version: "jpeg-low", data:blob});
34 });
35
36 offCanvas.convertToBlob({type: "image/webp"})
37 .then(function(blob) {
38 self.postMessage({version: "webp-high", data:blob});
39 });
40
41 offCanvas.convertToBlob({type: "image/webp", quality: 0.2})
42 .then(function(blob) {
43
44 self.postMessage({version: "webp-low", data:blob});
45 });
46 }
47 </script>
48 <script>
49 if (window.testRunner) {
50 testRunner.waitUntilDone();
51 }
52
53 var pngImage = document.getElementById('png');
54 var jpegImageHigh = document.getElementById('jpeg-high');
55 var jpegImageLow = document.getElementById('jpeg-low');
56 var webpImageHigh = document.getElementById('webp-high');
57 var webpImageLow = document.getElementById('webp-low');
58 var numTestCount = 5;
59 function imageLoaded() {
60 numTestCount--;
61 if (numTestCount == 0 && window.testRunner) {
62 window.testRunner.notifyDone();
63 }
64 }
65 pngImage.addEventListener('load', imageLoaded);
66 jpegImageHigh.addEventListener('load', imageLoaded);
67 jpegImageLow.addEventListener('load', imageLoaded);
68 webpImageHigh.addEventListener('load', imageLoaded);
69 webpImageLow.addEventListener('load', imageLoaded);
70
71 var workerBlob = new Blob([document.getElementById('myWorker').textContent]);
72 var worker = new Worker(URL.createObjectURL(workerBlob));
73 worker.addEventListener("message", function(msg) {
74 var blob = msg.data.data;
75 switch (msg.data.version) {
76 case 'png':
77 pngImage.src = URL.createObjectURL(blob);
78 break;
79 case 'jpeg-high':
80 jpegImageHigh.src = URL.createObjectURL(blob);
81 break;
82 case 'jpeg-low':
83 jpegImageLow.src = URL.createObjectURL(blob);
84 break;
85 case 'webp-high':
86 webpImageHigh.src = URL.createObjectURL(blob);
87 break;
88 case 'webp-low':
89 webpImageLow.src = URL.createObjectURL(blob);
90 break;
91 }
92 });
93 worker.postMessage("");
94 </script>
95
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698