summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/contextMenu/browser_contextmenu_loadblobinnewtab.html
blob: ca96fcfaa015d2fe992ad6a9c11eeb4f6bd7f21c (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
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
</head>

<body onload="add_content()">
  <p>This example creates a typed array containing the ASCII codes for the space character through the letter Z, then
    converts it to an object URL.A link to open that object URL is created. Click the link to see the decoded object
    URL.</p>
  <br />
  <br />
  <a id='blob-url-link'>Open the array URL</a>
  <br />
  <br />
  <a id='blob-url-referrer-link'>Open the URL that fetches the URL above</a>

  <script>
    function typedArrayToURL(typedArray, mimeType) {
      return URL.createObjectURL(new Blob([typedArray.buffer], { type: mimeType }))
    }

    function add_content() {
      const bytes = new Uint8Array(59);

      for (let i = 0;i < 59;i++) {
        bytes[i] = 32 + i;
      }

      const url = typedArrayToURL(bytes, 'text/plain');
      document.getElementById('blob-url-link').href = url;

      const ref_url = URL.createObjectURL(new Blob([`
        <body>
          <script>
            fetch("${url}", {headers: {'Content-Type': 'text/plain'}})
                  .then((response) => {
              response.text().then((textData) => {
                var pre = document.createElement("pre");
                pre.textContent = textData.trim();
                document.body.insertBefore(pre, document.body.firstChild);
              });
            });
          <\/script>
        <\/body>
      `], { type: 'text/html' }));

      document.getElementById('blob-url-referrer-link').href = ref_url;
    };

  </script>

</body>

</html>