Index: third_party/WebKit/LayoutTests/virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-2d-worker.html |
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-2d-worker.html b/third_party/WebKit/LayoutTests/virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-2d-worker.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ebe1c6a20d7deec1cdc0a0ecd3e500964e7154c |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-2d-worker.html |
@@ -0,0 +1,95 @@ |
+<img id="png"/> |
+<img id="jpeg-high"/> |
+<img id="jpeg-low"/> |
+<img id="webp-high"/> |
+<img id="webp-low"/> |
+<script id="myWorker" type="text/worker"> |
+self.onmessage = function (e) { |
+ var offCanvas = new OffscreenCanvas(50, 50); |
+ var offctx = offCanvas.getContext("2d"); |
+ offctx.fillStyle = "red"; |
+ offctx.fillRect(0, 0, 25, 25); |
+ offctx.fillStyle = "green"; |
+ offctx.fillRect(25, 0, 25, 25); |
+ offctx.fillStyle = "blue"; |
+ offctx.fillRect(0, 25, 25, 25); |
+ offctx.fillStyle = "black"; |
+ offctx.fillRect(25, 25, 25, 25); |
+ offctx.strokeStyle = "yellow"; |
+ offctx.strokeRect(0, 0, 50, 50); |
+ |
+ offCanvas.convertToBlob() |
+ .then(function(blob) { |
+ self.postMessage({version: "png", data:blob}); |
+ }); |
+ |
+ offCanvas.convertToBlob({type: "image/jpeg"}) |
+ .then(function(blob) { |
+ self.postMessage({version: "jpeg-high", data:blob}); |
+ }); |
+ |
+ offCanvas.convertToBlob({type: "image/jpeg", quality: 0.2}) |
+ .then(function(blob) { |
+ self.postMessage({version: "jpeg-low", data:blob}); |
+ }); |
+ |
+ offCanvas.convertToBlob({type: "image/webp"}) |
+ .then(function(blob) { |
+ self.postMessage({version: "webp-high", data:blob}); |
+ }); |
+ |
+ offCanvas.convertToBlob({type: "image/webp", quality: 0.2}) |
+ .then(function(blob) { |
+ |
+ self.postMessage({version: "webp-low", data:blob}); |
+ }); |
+} |
+</script> |
+<script> |
+if (window.testRunner) { |
+ testRunner.waitUntilDone(); |
+} |
+ |
+var pngImage = document.getElementById('png'); |
+var jpegImageHigh = document.getElementById('jpeg-high'); |
+var jpegImageLow = document.getElementById('jpeg-low'); |
+var webpImageHigh = document.getElementById('webp-high'); |
+var webpImageLow = document.getElementById('webp-low'); |
+var numTestCount = 5; |
+function imageLoaded() { |
+ numTestCount--; |
+ if (numTestCount == 0 && window.testRunner) { |
+ window.testRunner.notifyDone(); |
+ } |
+} |
+pngImage.addEventListener('load', imageLoaded); |
+jpegImageHigh.addEventListener('load', imageLoaded); |
+jpegImageLow.addEventListener('load', imageLoaded); |
+webpImageHigh.addEventListener('load', imageLoaded); |
+webpImageLow.addEventListener('load', imageLoaded); |
+ |
+var workerBlob = new Blob([document.getElementById('myWorker').textContent]); |
+var worker = new Worker(URL.createObjectURL(workerBlob)); |
+worker.addEventListener("message", function(msg) { |
+ var blob = msg.data.data; |
+ switch (msg.data.version) { |
+ case 'png': |
+ pngImage.src = URL.createObjectURL(blob); |
+ break; |
+ case 'jpeg-high': |
+ jpegImageHigh.src = URL.createObjectURL(blob); |
+ break; |
+ case 'jpeg-low': |
+ jpegImageLow.src = URL.createObjectURL(blob); |
+ break; |
+ case 'webp-high': |
+ webpImageHigh.src = URL.createObjectURL(blob); |
+ break; |
+ case 'webp-low': |
+ webpImageLow.src = URL.createObjectURL(blob); |
+ break; |
+ } |
+}); |
+worker.postMessage(""); |
+</script> |
+ |