Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-getContext2D-in-worker.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-getContext2D-in-worker.html b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-getContext2D-in-worker.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..819a4dac28e38157a62a385faaea6a316983c486 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-getContext2D-in-worker.html |
| @@ -0,0 +1,52 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<script src="../../resources/js-test.js"></script> |
| +<body> |
| +<script id="myWorker" type="text/worker"> |
| +self.onmessage = function(e) { |
| + var aCanvas = new OffscreenCanvas(50, 50); |
| + try { |
| + var ctx = aCanvas.getContext('2d'); |
| + if (toString.call(ctx) != '[object OffscreenCanvasRenderingContext2D]') { |
| + self.postMessage({ outcome : "error", errorMessage : |
| + "aCanvas.getContext('2d') does not return [object OffscreenCanvasRenderingContext2D]" }); |
| + } else { |
| + self.postMessage({ outcome : "success", errorMessage : "" }); |
| + } |
| + } catch (e) { |
| + self.postMessage({ outcome : "error", errorMessage : e }); |
| + } |
| +}; |
| +</script> |
| + |
| +<script> |
| +jsTestIsAsync = true; |
| +description("Tests that the 2D context of OffscreenCanvas can be constructed on a worker thread."); |
| + |
| +function makeWorker(script) { |
| + var blob = new Blob([script]); |
| + return new Worker(URL.createObjectURL(blob)); |
| +} |
| + |
| +function handleMessageFromWorker(msg) { |
| + switch (msg.data.outcome) { |
|
Justin Novosad
2016/03/07 15:30:26
This test is more complex than necessary. Instead
|
| + case 'success': |
| + testPassed("getContext('2d') correctly returns [object OffscreenCanvasRenderingContext2D]."); |
| + break; |
| + case 'error': |
| + testFailed(msg.data.errorMessage); |
| + break; |
| + default: |
| + testFailed("Unexpected failure"); |
| + break; |
| + } |
| + finishJSTest(); |
| +} |
| + |
| +var worker = makeWorker(document.getElementById('myWorker').textContent); |
| +worker.addEventListener('message', handleMessageFromWorker); |
| +worker.postMessage(""); |
| +</script> |
| + |
| +</body> |
| +</html> |