tor-browser

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

browser_favicon_referer.js (1895B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const FOLDER = getRootDirectory(gTestPath).replace(
      7  "chrome://mochitests/content/",
      8  "http://mochi.test:8888/"
      9 );
     10 
     11 add_task(async function test_check_referrer_for_discovered_favicon() {
     12  await BrowserTestUtils.withNewTab(
     13    { gBrowser, url: "about:blank" },
     14    async browser => {
     15      let referrerPromise = TestUtils.topicObserved(
     16        "http-on-modify-request",
     17        s => {
     18          let chan = s.QueryInterface(Ci.nsIHttpChannel);
     19          return chan.URI.spec == "http://mochi.test:8888/favicon.ico";
     20        }
     21      ).then(([chan]) => chan.getRequestHeader("Referer"));
     22 
     23      BrowserTestUtils.startLoadingURIString(
     24        browser,
     25        `${FOLDER}discovery.html`
     26      );
     27 
     28      let referrer = await referrerPromise;
     29      is(
     30        referrer,
     31        `${FOLDER}discovery.html`,
     32        "Should have sent referrer for autodiscovered favicon."
     33      );
     34    }
     35  );
     36 });
     37 
     38 add_task(
     39  async function test_check_referrer_for_referrerpolicy_explicit_favicon() {
     40    await BrowserTestUtils.withNewTab(
     41      { gBrowser, url: "about:blank" },
     42      async browser => {
     43        let referrerPromise = TestUtils.topicObserved(
     44          "http-on-modify-request",
     45          s => {
     46            let chan = s.QueryInterface(Ci.nsIHttpChannel);
     47            return chan.URI.spec == `${FOLDER}file_favicon.png`;
     48          }
     49        ).then(([chan]) => chan.getRequestHeader("Referer"));
     50 
     51        BrowserTestUtils.startLoadingURIString(
     52          browser,
     53          `${FOLDER}file_favicon_no_referrer.html`
     54        );
     55 
     56        let referrer = await referrerPromise;
     57        is(
     58          referrer,
     59          "http://mochi.test:8888/",
     60          "Should have sent the origin referrer only due to the per-link referrer policy specified."
     61        );
     62      }
     63    );
     64  }
     65 );