<!DOCTYPE html>
<title>Shared Worker: Blob URL passed over message port</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
</body>
<script>

promise_test(t => {
  let worker;
  let blob;
  let blobUrl;
  let blobText = 'Blob URL test';

  return new Promise(function(resolve) {
      worker = new SharedWorker('support/WorkerFetchURL.js');
      blob = new Blob([blobText]);
      blobUrl = URL.createObjectURL(blob);
      worker.port.postMessage(blobUrl);
      worker.port.onmessage = resolve;
    })
  .then(e => {
    assert_equals(e.data, 'Worker reply:' + blobText);
    URL.revokeObjectURL(blobUrl);
  });
}, 'Blob URL shared by document on SharedWorker');

</script>
</html>

