tor-browser

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

header-referrer.js (1296B)


      1 const RESOURCES_DIR = "/html/semantics/links/downloading-resources/resources/";
      2 
      3 function testReferrerHeader(expectedReferrer) {
      4  let id = self.token();
      5  let testUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=put&id=" + id;
      6 
      7  promise_test(function(test) {
      8    const anchor = document.getElementById("a");
      9    anchor.setAttribute("ping", testUrl);
     10    anchor.click();
     11    return pollResult(id) .then(result => {
     12      assert_equals(result, expectedReferrer, "Correct referrer header result");
     13    });
     14  }, "Test referer header " + RESOURCES_DIR);
     15 }
     16 
     17 // Sending a ping is an asynchronous and non-blocking request to a web server.
     18 // We may have to create a poll loop to get result from server
     19 function pollResult(id) {
     20  let checkUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=get&id=" + id;
     21 
     22  return new Promise(resolve => {
     23    function checkResult() {
     24      fetch(checkUrl).then(
     25        function(response) {
     26          assert_equals(response.status, 200, "Inspect header response's status is 200");
     27          let result = response.headers.get("x-request-referer");
     28 
     29          if (result != undefined) {
     30            resolve(result);
     31          } else {
     32            step_timeout(checkResult.bind(this), 100);
     33          }
     34        });
     35    }
     36 
     37    checkResult();
     38  });
     39 
     40 }