blob: fe8d0e6030d539d8978c4021de221fcfb6740816 [file] [log] [blame]
<!DOCTYPE>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script id="myWorker" type="text/worker">
self.onmessage = function(e) {
var offscreenCanvas = e.data;
var offscreen2d = offscreenCanvas.getContext("2d");
offscreen2d.commit();
self.postMessage("worker done");
};
</script>
<script>
function makeWorker() {
var blob = new Blob([document.getElementById("myWorker").textContent]);
return new Worker(URL.createObjectURL(blob));
}
// Regression test for crbug.com/663916
async_test(function(t) {
var canvas1 = document.createElement('canvas');
canvas1.width = canvas1.height = 10;
var offscreenCanvas1 = canvas1.transferControlToOffscreen();
var canvas2 = document.createElement('canvas');
canvas2.width = canvas2.height = 10;
var offscreenCanvas2 = canvas2.transferControlToOffscreen();
var worker1 = makeWorker();
var worker2 = makeWorker();
var returnedWorkerCounter = 0;
worker1.onmessage = worker2.onmessage = function (e) {
returnedWorkerCounter++;
if (returnedWorkerCounter == 2)
t.done();
};
worker1.postMessage(offscreenCanvas1, [offscreenCanvas1]);
worker2.postMessage(offscreenCanvas2, [offscreenCanvas2]);
}, "Calling OffscreenCanvas.commit() from two workers should not crash.");
</script>