tor-browser

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

file_resource_timing_nocors.html (6913B)


      1 <!--
      2  Any copyright is dedicated to the Public Domain.
      3  http://creativecommons.org/publicdomain/zero/1.0/
      4 -->
      5 
      6 <!DOCTYPE html>
      7 <html>
      8 <head>
      9  <meta charset="utf-8">
     10  <link rel="stylesheet" type="text/css" href="http://mochi.test:8888/tests/SimpleTest/test.css?resource-timing-nocors"/>
     11 
     12  <!--
     13    This document has the origin http://mochi.test:8888.
     14 
     15    The resource timing of any all sub-resources should be reported, except for
     16    any sub-resources of any cross-origin resources that are loaded.
     17 
     18    Note that the resource timing of the original cross-origin resource should
     19    itself be reported.  The goal here is to not reveal which sub-resources are
     20    loaded by any cross-origin resources (the fact that any given cross-origin
     21    resource itself is loaded is known to the original origin).
     22 
     23    In the comments below, the following annotations apply:
     24 
     25    [r] - this resource should be reported by performance.getEntries()
     26    [!] - this resource should be excluded from performance.getEntries()
     27  -->
     28 
     29 
     30  <!-- 1. [r] http://mochi.test:8888 , generateCss.sjs?A
     31          [r]   http://mochi.test:8888 , generateCss.sjs?B
     32  -->
     33  <link rel="stylesheet" type="text/css" href="generateCss.sjs?A"/>
     34 
     35 
     36  <!-- 2. [r] http://example.com , generateCss.sjs?C
     37          [!]   http://example.com , generateCss.sjs?D
     38  -->
     39  <link rel="stylesheet" type="text/css" href="http://example.com/tests/dom/tests/mochitest/general/generateCss.sjs?C"/>
     40 
     41 
     42  <!-- 3. [r] http://example.com , generateCss.sjs?E
     43          [!]   http://mochi.test:8888 , generateCss.sjs?F
     44  -->
     45  <link rel="stylesheet" type="text/css" href="http://example.com/tests/dom/tests/mochitest/general/generateCss.sjs?E"/>
     46 
     47 
     48  <!-- 4. [r] http://mochi.test:8888 , generateCss.sjs?G
     49          [r]   http://mochi.test:8888 , generateCss.sjs?H
     50          [r]     http://example.com , generateCss.sjs?I
     51          [!]       http://example.com , generateCss.sjs?J
     52          [r]   http://example.org , generateCss.sjs?K
     53          [!]     http://example.org , generateCss.sjs?L
     54          [!]       http://example.org , generateCss.sjs?M
     55  -->
     56  <link rel="stylesheet" type="text/css" href="generateCss.sjs?G"/>
     57 
     58 
     59  <!-- 6. background-image: url()
     60       [r] http://example.net , generateCss.sjs?O
     61       [!]   http://example.net , red.png
     62  -->
     63  <link rel="stylesheet" type="text/css" href="http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?O"/>
     64 
     65 
     66  <!-- 7. @font-face
     67          [r] http://example.net , generateCss.sjs?P
     68          [!]   http://example.net , Ahem.tff
     69  -->
     70  <link rel="stylesheet" type="text/css" href="http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?P"/>
     71 
     72 
     73  <!-- 8. cursor: url()
     74       [r] http://example.net , generateCss.sjs?Q
     75       [!]   http://example.net , over.png
     76  -->
     77  <link rel="stylesheet" type="text/css" href="http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?Q"/>
     78 
     79 
     80  <!-- 9. mask: url(res.svg#mask)
     81       TODO: I don't think this is working properly. Must fix.
     82       [r] http://example.net , generateCss.sjs?R
     83       [!]   http://example.net , file_use_counter_svg_fill_pattern_data.svg
     84  -->
     85  <link rel="stylesheet" type="text/css" href="http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?R"/>
     86 
     87 
     88  <!-- TODO: add test that we _do_ include subresources if the cross-origin sheet was fetched via CORS -->
     89 
     90 
     91  <script type="application/javascript">
     92 
     93 function ok(cond, message) {
     94  window.opener.ok(cond, message)
     95 }
     96 
     97 function is(received, expected, message) {
     98  window.opener.is(received, expected, message);
     99 }
    100 
    101 function isnot(received, notExpected, message) {
    102  window.opener.isnot(received, notExpected, message);
    103 }
    104 
    105 var allResources = {
    106  "http://mochi.test:8888/tests/SimpleTest/test.css?resource-timing-nocors" : "link",
    107 
    108  // 1
    109  "http://mochi.test:8888/tests/dom/tests/mochitest/general/generateCss.sjs?A" : "link",
    110  "http://mochi.test:8888/tests/dom/tests/mochitest/general/generateCss.sjs?B" : "css",
    111 
    112  // 2
    113  "http://example.com/tests/dom/tests/mochitest/general/generateCss.sjs?C" : "link",
    114 
    115  // 3
    116  "http://example.com/tests/dom/tests/mochitest/general/generateCss.sjs?E" : "link",
    117 
    118  // 4
    119  "http://mochi.test:8888/tests/dom/tests/mochitest/general/generateCss.sjs?G" : "link",
    120  "http://mochi.test:8888/tests/dom/tests/mochitest/general/generateCss.sjs?H" : "css",
    121  "http://example.com/tests/dom/tests/mochitest/general/generateCss.sjs?I" : "css",
    122  "http://example.org/tests/dom/tests/mochitest/general/generateCss.sjs?K" : "css",
    123 
    124  // 6
    125  "http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?O" : "link",
    126 
    127  // 7
    128  "http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?P" : "link",
    129 
    130  // 8
    131  "http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?Q" : "link",
    132 
    133  // 9
    134  "http://example.net/tests/dom/tests/mochitest/general/generateCss.sjs?R" : "link",
    135 };
    136 
    137 window.onload = function() {
    138  let entries = performance.getEntriesByType('resource');
    139  for (let entry of entries) {
    140    //dump(entry.name + " || "+ entry.initiatorType+ "\n");
    141    if (!(entry.name in allResources)) {
    142      if (entry.name.substr(-4) == ".ttf") {
    143        // TODO: fix hiding of font files
    144        continue;
    145      }
    146      ok(false, "Did not expect timing for resource: " + entry.name);
    147      continue;
    148    }
    149    let resType = allResources[entry.name];
    150    is(entry.initiatorType, resType,
    151       "Expected matching initiatorType for: " + entry.name);
    152    delete allResources[entry.name];
    153  }
    154 
    155  for (let res in allResources) {
    156    ok(false, "Expect timing for resource: " + res);
    157  }
    158 
    159  window.opener.finishTests();
    160 }
    161 
    162 </script>
    163 </head>
    164 <body>
    165  <a target="_blank"
    166     href="https://bugzilla.mozilla.org/show_bug.cgi?id=1180145"
    167     title="Resource timing NO-CORS CSS">
    168    Bug #1180145 -  Resource Timing NO-CORS CSS
    169  </a>
    170  <p id="display"></p>
    171  <div id="content">
    172  </div>
    173 
    174  <div class="c1"> BLUE </div>
    175  <div class="c2"> RED  </div>
    176  <div class="c3"> Font </div>
    177  <div class="c4"> CURSOR </div>
    178  <div class="c5"> <img id="image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg=="> </div>
    179  <div class="c6"> </div>
    180 </body>
    181 </html>