tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

file_loads_nonscript.html (1420B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>File that loads a non-script file-extension as script</title>
      5 </head>
      6 <body>
      7  <script>
      8    /* global equal */
      9 
     10    const files = ["file_nonscript",
     11                   "file_nonscript.xyz",
     12                   "file_nonscript.html",
     13                   "file_nonscript.txt",
     14                   "file_nonscript.json"];
     15 
     16    async function run() {
     17      window.counter = 0;
     18 
     19      for (let file of files) {
     20        let script = document.createElement("script");
     21        let promise = new Promise((resolve, reject) => {
     22          script.addEventListener("error", resolve, {once: true});
     23          script.addEventListener("load", reject, {once: true});
     24        });
     25        script.src = file;
     26        document.body.append(script);
     27 
     28        let event = await promise;
     29        equal(event.type, "error");
     30        equal(window.counter, 0);
     31      }
     32 
     33      let script = document.createElement("script");
     34      let promise = new Promise((resolve, reject) => {
     35        script.addEventListener("load", resolve, {once: true});
     36        script.addEventListener("error", reject, {once: true});
     37      });
     38      script.src = "file_script.js";
     39      document.body.append(script);
     40 
     41      let event = await promise;
     42      equal(event.type, "load");
     43      equal(window.counter, 1);
     44 
     45      window.postMessage("done", "*");
     46    }
     47    window.addEventListener("message", run, {once: true})
     48  </script>
     49 </html>