tor-browser

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

test_anchor_target_blank_referrer.html (5320B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test anchor target=_blank rel=noopener referrer header for Bug 1502678</title>
      6  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
      8 
      9  <!--
     10  Testing that anchor referrer header are honoured correctly
     11  * anchor tag with rel=noopener target=_blank
     12  https://bugzilla.mozilla.org/show_bug.cgi?id=1502678
     13  -->
     14 
     15  <script type="application/javascript">
     16  // We are going to open new tabs with target=_blank and rel=noopener
     17  // Listen a new tab is opened then close the new tab, otherwise we will lose
     18  // focus for the next tests
     19  const {BrowserTestUtils} = ChromeUtils.importESModule(
     20    "resource://testing-common/BrowserTestUtils.sys.mjs"
     21  );
     22  const gBrowser = Services.wm.getMostRecentWindow("navigator:browser").gBrowser;
     23  window.addEventListener("message", function(event) {
     24    if (event.data == "childLoadReady") {
     25      BrowserTestUtils.waitForNewTab(gBrowser, null,
     26        true).then(function(aNewTab) {
     27          BrowserTestUtils.removeTab(aNewTab);
     28          advance();
     29        });
     30    }
     31  });
     32 
     33  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
     34  const PARAMS = ["RP_HEADER", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"];
     35 
     36  const testCases = [
     37    {ACTION: ["generate-anchor-target-blank-policy-test"],
     38      PREFS: [
     39        ["dom.security.https_first", false], // need to test http and https
     40      ],
     41      TESTS: [
     42        // Referrer policy is set in meta
     43        {NAME: 'origin-in-meta-rel-noopener',
     44         META_POLICY: 'origin',
     45         DESC: "origin in meta and rel=noopener",
     46         SCHEME_FROM: 'https',
     47         SCHEME_TO: 'http',
     48         RESULT: 'origin'},
     49        {NAME: 'unsafe-url-in-meta-rel-noopener',
     50         META_POLICY: 'unsafe-url',
     51         DESC: "unsafe-url in meta and rel=noopener",
     52         SCHEME_FROM: 'https',
     53         SCHEME_TO: 'http',
     54         RESULT: 'full'},
     55        {NAME: 'no-referrer-in-meta-rel-noopener',
     56         META_POLICY: 'no-referrer',
     57         DESC: "no-referrer in meta and rel=noopener",
     58         SCHEME_FROM: 'https',
     59         SCHEME_TO: 'http',
     60         RESULT: 'none'},
     61        {NAME: 'strict-origin-in-meta-rel-noopener',
     62         META_POLICY: 'strict-origin',
     63         DESC: "strict-origin in meta and rel=noopener",
     64         SCHEME_FROM: 'https',
     65         SCHEME_TO: 'http',
     66         RESULT: 'none'},
     67        {NAME: 'strict-origin-when-cross-origin-in-meta-rel-noopener',
     68         META_POLICY: 'strict-origin-when-cross-origin',
     69         DESC: "strict-origin-when-cross-origin in meta and rel=noopener",
     70         SCHEME_FROM: 'https',
     71         SCHEME_TO: 'http',
     72         RESULT: 'none'},
     73        {NAME: 'same-origin-in-meta-rel-noopener',
     74         META_POLICY: 'same-origin',
     75         DESC: "same-origin in meta and rel=noopener",
     76         SCHEME_FROM: 'https',
     77         SCHEME_TO: 'http',
     78         RESULT: 'none'},
     79        {NAME: 'no-meta-rel-noopener',
     80         META_POLICY: '',
     81         DESC: "no meta and rel=noopener",
     82         SCHEME_FROM: 'https',
     83         SCHEME_TO: 'http',
     84         RESULT: 'none'},
     85 
     86        // Referrer policy is set in Referrer-Policy Header
     87        {NAME: 'origin-in-referrer-policy-header-rel-noopener',
     88         RP_HEADER: 'origin',
     89         DESC: "origin in Referrer-Policy Header and rel=noopener",
     90         SCHEME_FROM: 'https',
     91         SCHEME_TO: 'http',
     92         RESULT: 'origin'},
     93        {NAME: 'unsafe-url-in-referrer-policy-header-rel-noopener',
     94         RP_HEADER: 'unsafe-url',
     95         DESC: "unsafe-url in Referrer-Policy Header and rel=noopener",
     96         SCHEME_FROM: 'https',
     97         SCHEME_TO: 'http',
     98         RESULT: 'full'},
     99        {NAME: 'no-referrer-in-referrer-policy-header-rel-noopener',
    100         RP_HEADER: 'no-referrer',
    101         DESC: "no-referrer in Referrer-Policy Header and rel=noopener",
    102         SCHEME_FROM: 'https',
    103         SCHEME_TO: 'http',
    104         RESULT: 'none'},
    105        {NAME: 'strict-origin-in-referrer-policy-header-rel-noopener',
    106         RP_HEADER: 'strict-origin',
    107         DESC: "strict-origin in Referrer-Policy Header and rel=noopener",
    108         SCHEME_FROM: 'https',
    109         SCHEME_TO: 'http',
    110         RESULT: 'none'},
    111        {NAME: 'strict-origin-when-cross-origin-in-referrer-policy-header-rel-noopener',
    112         RP_HEADER: 'strict-origin-when-cross-origin',
    113         DESC: "strict-origin-when-cross-origin in Referrer-Policy Header and rel=noopener",
    114         SCHEME_FROM: 'https',
    115         SCHEME_TO: 'http',
    116         RESULT: 'none'},
    117        {NAME: 'same-origin-in-referrer-policy-header-rel-noopener',
    118         RP_HEADER: 'same-origin',
    119         DESC: "same-origin in Referrer-Policy Header and rel=noopener",
    120         SCHEME_FROM: 'https',
    121         SCHEME_TO: 'http',
    122         RESULT: 'none'},
    123        {NAME: 'no-referrer-policy-header-rel-noopener',
    124         RP_HEADER: '',
    125         DESC: "no Referrer-Policy Header and rel=noopener",
    126         SCHEME_FROM: 'https',
    127         SCHEME_TO: 'http',
    128         RESULT: 'none'}
    129 
    130      ]}
    131  ];
    132  </script>
    133  <script type="application/javascript" src="referrer_helper.js"></script>
    134 </head>
    135 <body onload="tests.next();">
    136  <iframe id="testframe"></iframe>
    137 </body>
    138 </html>