tor-browser

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

test_link_prefetch.html (8418B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test link policy attribute for Bug 1264165</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
      8 
      9  <!--
     10  Testing that link referrer attributes are honoured correctly
     11  https://bugzilla.mozilla.org/show_bug.cgi?id=1264165
     12  -->
     13 
     14  <script type="application/javascript">
     15 
     16  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
     17  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"];
     18 
     19  const testCases = [
     20    {ACTION: ["generate-link-policy-test"],
     21      TESTS: [
     22        {ATTRIBUTE_POLICY: 'unsafe-url',
     23         NAME: 'prefetch-unsafe-url-with-origin-in-meta',
     24         META_POLICY: 'origin',
     25         REL: 'prefetch',
     26         DESC: "prefetch-unsafe-url with origin in meta",
     27         RESULT: 'full'},
     28        {ATTRIBUTE_POLICY: 'origin',
     29         NAME: 'prefetch-origin-with-unsafe-url-in-meta',
     30         META_POLICY: 'unsafe-url',
     31         REL: 'prefetch',
     32         DESC: "prefetch-origin with unsafe-url in meta",
     33         RESULT: 'origin'},
     34        {ATTRIBUTE_POLICY: 'no-referrer',
     35         NAME: 'prefetch-no-referrer-with-origin-in-meta',
     36         META_POLICY: 'origin',
     37         REL: 'prefetch',
     38         DESC: "prefetch-no-referrer with origin in meta",
     39         RESULT: 'none'},
     40        {ATTRIBUTE_POLICY: 'same-origin',
     41         NAME: 'prefetch-same-origin-with-origin-in-meta',
     42         META_POLICY: 'origin',
     43         REL: 'prefetch',
     44         DESC: "prefetch-same-origin with origin in meta",
     45         RESULT: 'full'},
     46        {NAME: 'prefetch-no-referrer-in-meta',
     47         META_POLICY: 'no-referrer',
     48         REL: 'prefetch',
     49         DESC: "prefetch-no-referrer in meta",
     50         RESULT: 'none'},
     51 
     52         // Downgrade.
     53        {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
     54         NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
     55         META_POLICY: 'origin',
     56         DESC: 'prefetch-origin in meta downgrade in attr',
     57         REL: 'prefetch',
     58         SCHEME_FROM: 'https',
     59         SCHEME_TO: 'http',
     60         RESULT: 'none'},
     61        {ATTRIBUTE_POLICY: 'strict-origin',
     62         NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
     63         META_POLICY: 'origin',
     64         DESC: 'prefetch-origin in meta strict-origin in attr',
     65         REL: 'prefetch',
     66         SCHEME_FROM: 'https',
     67         SCHEME_TO: 'http',
     68         RESULT: 'none'},
     69        {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
     70         NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
     71         META_POLICY: 'origin',
     72         DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
     73         REL: 'prefetch',
     74         SCHEME_FROM: 'https',
     75         SCHEME_TO: 'http',
     76         RESULT: 'none'},
     77 
     78         // No downgrade.
     79        {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
     80         NAME: 'prefetch-origin-in-meta-downgrade-in-attr',
     81         META_POLICY: 'origin',
     82         DESC: 'prefetch-origin in meta downgrade in attr',
     83         REL: 'prefetch',
     84         SCHEME_FROM: 'https',
     85         SCHEME_TO: 'https',
     86         RESULT: 'full'},
     87 
     88        {ATTRIBUTE_POLICY: 'origin',
     89         NAME: 'prefetch-origin-with-no-meta',
     90         META_POLICY: '',
     91         REL: 'prefetch',
     92         DESC: "prefetch-origin with no meta",
     93         RESULT: 'origin'},
     94 
     95        {ATTRIBUTE_POLICY: 'strict-origin',
     96         NAME: 'prefetch-origin-in-meta-strict-origin-in-attr',
     97         META_POLICY: 'origin',
     98         DESC: 'prefetch-origin in meta strict-origin in attr',
     99         REL: 'prefetch',
    100         SCHEME_FROM: 'https',
    101         SCHEME_TO: 'https',
    102         RESULT: 'origin'},
    103        {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
    104         NAME: 'prefetch-origin-in-meta-strict-origin-when-cross-origin-in-attr',
    105         META_POLICY: 'origin',
    106         DESC: 'prefetch-origin in meta strict-origin-when-cross-origin in attr',
    107         REL: 'prefetch',
    108         SCHEME_FROM: 'https',
    109         SCHEME_TO: 'https',
    110         RESULT: 'full'},
    111 
    112        // Cross origin
    113        {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
    114         NAME: 'prefetch-origin-when-cross-origin-with-no-meta',
    115         META_POLICY: '',
    116         SCHEME_FROM: 'https',
    117         SCHEME_TO: 'http',
    118         REL: 'prefetch',
    119         DESC: "prefetch-origin-when-cross-origin with no meta",
    120         RESULT: 'origin'},
    121        {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
    122         NAME: 'prefetch-origin-when-cross-origin-with-no-referrer-in-meta',
    123         META_POLICY: 'no-referrer',
    124         SCHEME_FROM: 'https',
    125         SCHEME_TO: 'http',
    126         REL: 'prefetch',
    127         DESC: "prefetch-origin-when-cross-origin with no-referrer in meta",
    128         RESULT: 'origin'},
    129        {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
    130         NAME: 'prefetch-origin-when-cross-origin-with-unsafe-url-in-meta',
    131         META_POLICY: 'unsafe-url',
    132         SCHEME_FROM: 'https',
    133         SCHEME_TO: 'http',
    134         REL: 'prefetch',
    135         DESC: "prefetch-origin-when-cross-origin with unsafe-url in meta",
    136         RESULT: 'origin'},
    137        {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
    138         NAME: 'prefetch-origin-when-cross-origin-with-origin-in-meta',
    139         META_POLICY: 'origin',
    140         SCHEME_FROM: 'https',
    141         SCHEME_TO: 'http',
    142         REL: 'prefetch',
    143         DESC: "prefetch-origin-when-cross-origin with origin in meta",
    144         RESULT: 'origin'},
    145        {ATTRIBUTE_POLICY: 'strict-origin-when-cross-origin',
    146         NAME: 'prefetch-strict-origin-when-cross-origin-with-origin-in-meta',
    147         META_POLICY: 'origin',
    148         SCHEME_FROM: 'http',
    149         SCHEME_TO: 'https',
    150         REL: 'prefetch',
    151         DESC: "prefetch-strict-origin-when-cross-origin with origin in meta",
    152         RESULT: 'origin'},
    153        {ATTRIBUTE_POLICY: 'same-origin',
    154         NAME: 'prefetch-same-origin-with-origin-in-meta',
    155         META_POLICY: 'origin',
    156         SCHEME_FROM: 'http',
    157         SCHEME_TO: 'https',
    158         REL: 'prefetch',
    159         DESC: "prefetch-same-origin with origin in meta",
    160         RESULT: 'none'},
    161 
    162        // Invalid
    163        {ATTRIBUTE_POLICY: 'default',
    164         NAME: 'prefetch-default-with-no-meta',
    165         META_POLICY: '',
    166         REL: 'prefetch',
    167         DESC: "prefetch-default with no meta",
    168         RESULT: 'full'},
    169        {ATTRIBUTE_POLICY: 'something',
    170         NAME: 'prefetch-something-with-no-meta',
    171         META_POLICY: '',
    172         REL: 'prefetch',
    173         DESC: "prefetch-something with no meta",
    174         RESULT: 'full'},
    175      ]},
    176 
    177    {ACTION: ["generate-link-policy-test-set-attribute"],
    178      TESTS: [
    179        {ATTRIBUTE_POLICY: 'unsafe-url',
    180         NEW_ATTRIBUTE_POLICY: 'no-referrer',
    181         NAME: 'prefetch-no-referrer-unsafe-url-set-attribute-with-origin-in-meta',
    182         META_POLICY: 'origin',
    183         REL: 'prefetch',
    184         DESC: "prefetch-no-referrer-set-attribute (originally unsafe-url) with origin in meta",
    185         RESULT: 'none'},
    186        {ATTRIBUTE_POLICY: 'origin',
    187         NEW_ATTRIBUTE_POLICY: 'unsafe-url',
    188         NAME: 'prefetch-unsafe-url-origin-set-attribute-with-no-referrer-in-meta',
    189         META_POLICY: 'no-referrer',
    190         REL: 'prefetch',
    191         DESC: "prefetch-unsafe-url-set-attribute(originally origin) with no-referrer in meta",
    192         RESULT: 'full'},
    193      ]},
    194 
    195    {ACTION: ["generate-link-policy-test-property"],
    196      TESTS: [
    197        {ATTRIBUTE_POLICY: 'no-referrer',
    198         NEW_ATTRIBUTE_POLICY: 'unsafe-url',
    199         NAME: 'prefetch-unsafe-url-no-referrer-property-with-origin-in-meta',
    200         META_POLICY: 'origin',
    201         REL: 'prefetch',
    202         DESC: "prefetch-unsafe-url-property (originally no-referrer) with origin in meta",
    203         RESULT: 'full'},
    204        {ATTRIBUTE_POLICY: 'origin',
    205         NEW_ATTRIBUTE_POLICY: 'unsafe-url',
    206         NAME: 'prefetch-unsafe-url-origin-property-with-no-referrer-in-meta',
    207         META_POLICY: 'no-referrer',
    208         REL: 'prefetch',
    209         DESC: "prefetch-unsafe-url-property (originally origin) with no-referrer in meta",
    210         RESULT: 'full'},
    211      ]},
    212  ];
    213 
    214  </script>
    215  <script type="application/javascript" src="/tests/dom/base/test/referrer_helper.js"></script>
    216 </head>
    217 <body onload="tests.next();">
    218  <iframe id="testframe"></iframe>
    219 </body>
    220 </html>