tor-browser

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

test_referer.html (2143B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=584480
      5 -->
      6 <head>
      7  <title>Test for Bug 584480</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     10  <script type="text/javascript" src="manifest.js"></script> 
     11 </head>
     12 <body>
     13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=584480">Mozilla Bug </a>
     14 <p id="display"></p>
     15 <div id="content" style="display: none">
     16  
     17 </div>
     18 <pre id="test">
     19 <script type="application/javascript">
     20 var media = [];
     21 
     22 function checkComplete() {
     23  for (var i=0; i<media.length; ++i) {
     24    if (!media[i]._complete) {
     25      return;
     26    }
     27  }
     28 
     29  SimpleTest.finish();
     30 }
     31 
     32 function removeNode(v) {
     33  v.removeEventListener("error", loadError);
     34  v.removeEventListener("loadedmetadata", loadedMetadata);
     35  v.remove();
     36  v.src = "";
     37 }
     38 
     39 function loadError(evt) {
     40  // If no referer is sent then the sjs returns an error
     41  ok(false, "check referer is sent with media request");
     42  evt.target._complete = true;
     43  checkComplete();
     44  removeNode(evt.target);
     45 }
     46 
     47 function loadedMetadata(evt) {
     48  // If a referer is sent then the sjs returns a valid media
     49  ok(true, "check referer is sent with media request");
     50  evt.target._complete = true;
     51  checkComplete();
     52  removeNode(evt.target);
     53 }
     54 
     55 // Create all media objects.
     56 for (var i=0; i<gSmallTests.length; ++i) {
     57  var test = gSmallTests[i];
     58  var type;
     59  if (/^video/.test(test.type)) {
     60    type = "video"
     61  } else {
     62    type = "audio";
     63  }
     64  var v = document.createElement(type);
     65  if (!v.canPlayType(test.type)) {
     66    continue;
     67  }
     68  // ensure metadata is loaded for default preload is none on b2g 
     69  v.preload = "metadata";
     70  v.autoplay = "true";
     71  v._complete = false;
     72  v.addEventListener("error", loadError);
     73  v.addEventListener("loadedmetadata", loadedMetadata);
     74  v.src = 'referer.sjs?name=' + test.name + '&type=' + test.type;
     75  document.body.appendChild(v); // Will start load.
     76  media.push(v);
     77 }
     78 
     79 if (!media.length) {
     80  todo(false, "No types supported");
     81 } else {
     82  SimpleTest.waitForExplicitFinish();
     83 }
     84 </script>
     85 </pre>
     86 
     87 </body>
     88 </html>