tor-browser

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

browser_referrer_click_pinned_tab.js (2348B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 // We will open a new tab if clicking on a cross domain link in pinned tab
      6 // So, override the tests data in head.js, adding "cross: true".
      7 
      8 _referrerTests = [
      9  {
     10    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     11    fromScheme: "http://",
     12    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     13    toScheme: "http://",
     14    cross: true,
     15    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     16    result: "http://test1.example.com/", // origin
     17  },
     18  {
     19    fromScheme: "https://",
     20    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     21    toScheme: "http://",
     22    cross: true,
     23    result: "", // no referrer when downgrade
     24  },
     25  {
     26    fromScheme: "https://",
     27    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     28    toScheme: "http://",
     29    policy: "origin",
     30    cross: true,
     31    result: "https://test1.example.com/", // origin, even on downgrade
     32  },
     33  {
     34    fromScheme: "https://",
     35    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     36    toScheme: "http://",
     37    policy: "origin",
     38    rel: "noreferrer",
     39    cross: true,
     40    result: "", // rel=noreferrer trumps meta-referrer
     41  },
     42  {
     43    fromScheme: "https://",
     44    toScheme: "https://",
     45    policy: "no-referrer",
     46    cross: true,
     47    result: "", // same origin https://test1.example.com/browser
     48  },
     49  {
     50    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
     51    fromScheme: "http://",
     52    toScheme: "https://",
     53    policy: "no-referrer",
     54    cross: true,
     55    result: "", // cross origin http://test1.example.com
     56  },
     57 ];
     58 
     59 async function startClickPinnedTabTestCase(aTestNumber) {
     60  info(
     61    "browser_referrer_click_pinned_tab: " +
     62      getReferrerTestDescription(aTestNumber)
     63  );
     64  let browser = gTestWindow.gBrowser;
     65 
     66  browser.pinTab(browser.selectedTab);
     67  someTabLoaded(gTestWindow).then(function (aNewTab) {
     68    checkReferrerAndStartNextTest(
     69      aTestNumber,
     70      null,
     71      aNewTab,
     72      startClickPinnedTabTestCase
     73    );
     74  });
     75 
     76  clickTheLink(gTestWindow, "testlink", {});
     77 }
     78 
     79 function test() {
     80  requestLongerTimeout(10); // slowwww shutdown on e10s
     81  startReferrerTest(startClickPinnedTabTestCase);
     82 }