summaryrefslogtreecommitdiffstats
path: root/layout/reftests/svg/as-image/img-blobURI-2.html
blob: 073ec806200cf4a57da48acaad97072e7d527c81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<!-- This test checks to be sure we allow
     'blob' URIs *inside of* SVG-as-an-image. -->
<html class="reftest-wait">
<head>
  <script>
    function go() {
      // Generate a blob URL encoding of an SVG document
      var blobURL = generateBlobURL();

      // Now generate a data URI, containing our blob URI
      var outerSVG =
        '<svg xmlns="http://www.w3.org/2000/svg" ' +
             'xmlns:xlink="http://www.w3.org/1999/xlink" ' +
             'width="100" height="100">' +
          '<image height="100" width="100" ' +
             'xlink:href="' + blobURL + '"/>' +
        '</svg>';

      // Tell our img element to render the URL
      var img = document.getElementsByTagName("img")[0]
      img.src = "data:image/svg+xml," + outerSVG;

      // Once our img loads, take reftest snapshot.
      img.addEventListener("load", function() {
        document.documentElement.removeAttribute("class");
      });
    }

    // Helper function -- returns a blob URL representing a
    // 100x100 fully-lime SVG document.
    function generateBlobURL() {
      var svg =
        '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">' +
          '<rect height="100%" width="100%" fill="lime"/>' +
        '</svg>';
      return self.URL.createObjectURL(new Blob([svg], {type: "image/svg+xml"}));
    }
  </script>
</head>
<body onload="go()">
  <img src="">
</body>
</html>