<!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);
  self.postMessage({version:'first', width:aCanvas.width, height:aCanvas.height});

  aCanvas.width = 100;
  aCanvas.height = 100;
  self.postMessage({version:'second', width:aCanvas.width, height:aCanvas.height});
};
</script>

<script>
jsTestIsAsync = true;
description("Tests that the OffScreenCanvas can be constructed on a worker thread.");

var width;
var height;

function makeWorker(script) {
  var blob = new Blob([script]);
  return new Worker(URL.createObjectURL(blob));
}

function handleMessageFromWorker(msg) {
  width = msg.data.width;
  height = msg.data.height;
  switch (msg.data.version) {
    case 'first':
      shouldBe('width', '50');
      shouldBe('height', '50');
      break;
    case 'second':
      shouldBe('width', '100');
      shouldBe('height', '100');
      finishJSTest();
      break;
    default:
      testFailed("Unexpected failure");
      break;
  }
}

var worker = makeWorker(document.getElementById('myWorker').textContent);
worker.addEventListener('message', handleMessageFromWorker);
worker.postMessage("");
</script>

</body>
</html>
