wpt / svg / embedded / image-crossorigin.sub.html

Status: TIMEOUT | Duration: 48ms | Subtests: 0/4 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
Can get pixels of canvas with same origin image drawnTIMEOUTTest timed out
Can get pixels of canvas with CORS enabled cross origin image drawnTIMEOUTTest timed out
Can't get pixels of canvas with CORS enabled cross origin image drawn from non-CORS elementTIMEOUTTest timed out
Can't get pixels of canvas with non-CORS enabled cross origin image drawnTIMEOUTTest timed out

/svg/embedded/image-crossorigin.sub.html

<!DOCTYPE HTML>
<html>
<title>Test Crossorigin</title>
<link rel="help" href="https://www.w3.org/TR/SVG/embedded.html#ImageElementCrossoriginAttribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script class="testbody" type="text/javascript">

  function draw_and_read_image(image, should_throw) {
      let c = document.createElement('canvas');
      document.body.appendChild(c);
      let ctx = c.getContext('2d');
      ctx.drawImage(image, 0, 0);

      function get_image_data() {
          ctx.getImageData(0, 0, 4, 4);
      }

      if (should_throw) {
          assert_throws_dom('SecurityError', get_image_data);
      } else {
          get_image_data();
      }

      document.body.removeChild(c);
  }

  async_test(t => {
      let image = document.createElementNS("http://www.w3.org/2000/svg", "image");
      image.setAttribute("href", "/images/green.png");
      image.crossOrigin = "anonymous";
      image.onload = t.step_func_done(() => {
        draw_and_read_image(image, false);
      });
      image.onerror = t.unreached_func();
  }, "Can get pixels of canvas with same origin image drawn");

  async_test(t => {
      let image = document.createElementNS("http://www.w3.org/2000/svg", "image");
      image.setAttribute("href", "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png?pipe=header(Access-Control-Allow-Origin,*)");
      image.crossOrigin = "anonymous";
      image.onload = t.step_func_done(() => {
          draw_and_read_image(image, false);
      });
      image.onerror = t.unreached_func();
  }, "Can get pixels of canvas with CORS enabled cross origin image drawn");

  async_test(t => {
      let image = document.createElementNS("http://www.w3.org/2000/svg", "image");
      image.setAttribute("href", "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png?pipe=header(Access-Control-Allow-Origin,*)");
      image.onload = t.step_func_done(() => {
          draw_and_read_image(image, true);
      });
      image.onerror = t.unreached_func();
  }, "Can't get pixels of canvas with CORS enabled cross origin image drawn from non-CORS element");

  async_test(t => {
      let image = document.createElementNS("http://www.w3.org/2000/svg", "image");
      image.setAttribute("href", "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png");

      image.onload = t.step_func_done(() => {
          draw_and_read_image(image, true);
      });
      image.onerror = t.unreached_func();
  }, "Can't get pixels of canvas with non-CORS enabled cross origin image drawn");

</script>
</html>