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> |