<!DOCTYPE html>
<meta charset=utf-8>
<title>convertToBlob, OffscreenCanvas: origin-clean flag</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/scripting.html#the-imagebitmap-rendering-context">
<script>
const crossOriginImageUrl = "http://{{domains[www1]}}:{{ports[http][0]}}/images/red.png";

async_test(t => {
  var img = new Image();
  // Use a cross-origin URL.
  img.src = crossOriginImageUrl;

  img.onload = t.step_func(e => {
    createImageBitmap(img, 0, 0, img.width, img.height)
    .then(t.step_func(bitmap => {
      var canvasBitmap = new OffscreenCanvas(img.width,img.height);
      var contextBitmap = canvasBitmap.getContext("bitmaprenderer");
      contextBitmap.transferFromImageBitmap(bitmap);
      promise_rejects_dom(t, 'SecurityError',
        canvasBitmap.convertToBlob(),
        "convertToBlob on a tainted OffscreenCanvas has to throw").then(t.step_func_done());
    }));
  });
}, "Test that call convertToBlob on a tainted OffscreenCanvas throws exception");
</script>
