tor-browser

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

track.https.sub.html (3804B)


      1 <!DOCTYPE html>
      2 
      3 <link rel="author" href="mtrzos@google.com" title="Maciek Trzos">
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 <script src=/fetch/metadata/resources/helper.js></script>
      7 <script src=/common/utils.js></script>
      8 <body>
      9 </body>
     10 <script>
     11  let nonce = token();
     12 
     13  function createVideoElement() {
     14    let el = document.createElement('video');
     15    el.src = "/media/movie_5.mp4";
     16    el.setAttribute("controls", "");
     17    el.setAttribute("crossorigin", "");
     18    return el;
     19  }
     20 
     21  function createTrack() {
     22    let el = document.createElement("track");
     23    el.setAttribute("default", "");
     24    el.setAttribute("kind", "captions");
     25    el.setAttribute("srclang", "en");
     26    return el;
     27  }
     28 
     29  promise_test(t => {
     30    return new Promise((resolve, reject) => {
     31      let key = "track-same-origin" + nonce;
     32      let video = createVideoElement();
     33      let el = createTrack();
     34      el.src = "https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key;
     35      el.onload = t.step_func(_ => {
     36        expected = {
     37          "site": "same-origin",
     38          "user": "",
     39          "mode": "cors", // Because the `video` element has `crossorigin`
     40          "dest": "track"
     41        };
     42        validate_expectations(key, expected, "Same-Origin track")
     43            .then(_ => resolve());
     44      });
     45      video.appendChild(el);
     46      document.body.appendChild(video);
     47    });
     48  }, "Same-Origin track");
     49 
     50  promise_test(t => {
     51    return new Promise((resolve, reject) => {
     52      let key = "track-same-site" + nonce;
     53      let video = createVideoElement();
     54      let el = createTrack();
     55      el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key;
     56      el.onload = t.step_func(_ => {
     57        expected = {
     58          "site": "same-site",
     59          "user": "",
     60          "mode": "cors", // Because the `video` element has `crossorigin`
     61          "dest": "track"
     62        };
     63        validate_expectations(key, expected, "Same-Site track")
     64            .then(resolve)
     65            .catch(reject);
     66 
     67      });
     68      video.appendChild(el);
     69      document.body.appendChild(video);
     70    });
     71  }, "Same-Site track");
     72 
     73  promise_test(t => {
     74    return new Promise((resolve, reject) => {
     75      let key = "track-cross-site" + nonce;
     76      let video = createVideoElement();
     77      let el = createTrack();
     78      el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key;
     79      el.onload = t.step_func(_ => {
     80        expected = {
     81          "site": "cross-site",
     82          "user": "",
     83          "mode": "cors", // Because the `video` element has `crossorigin`
     84          "dest": "track"
     85        };
     86        validate_expectations(key, expected,"Cross-Site track")
     87            .then(resolve)
     88            .catch(reject);
     89      });
     90      video.appendChild(el);
     91      document.body.appendChild(video);
     92    });
     93  }, "Cross-Site track");
     94 
     95  promise_test(t => {
     96    return new Promise((resolve, reject) => {
     97      let key = "track-same-origin-cors" + nonce;
     98      let video = createVideoElement();
     99 
    100      // Unset `crossorigin` to change the CORS mode:
    101      video.crossOrigin = undefined;
    102 
    103      let el = createTrack();
    104      el.src = "https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key;
    105      el.onload = t.step_func(_ => {
    106        expected = {
    107          "site":"same-origin",
    108          "user":"",
    109          "mode": "same-origin",
    110          "dest": "track"
    111        };
    112        validate_expectations(key, expected, "Same-Origin, CORS track")
    113            .then(_ => resolve());
    114      });
    115      video.appendChild(el);
    116      document.body.appendChild(video);
    117    });
    118  }, "Same-Origin, CORS track");
    119 </script>