tor-browser

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

browser_script_loader_js_cache_sri_basic.js (8803B)


      1 // ev, unordered, and runJSCacheTests are defined in head.js
      2 
      3 add_task(async function testDiskCache_SRI() {
      4  await SpecialPowers.pushPrefEnv({
      5    set: [
      6      ["dom.expose_test_interfaces", true],
      7      ["dom.script_loader.bytecode_cache.enabled", true],
      8      ["dom.script_loader.bytecode_cache.strategy", 0],
      9      ["dom.script_loader.experimental.navigation_cache", false],
     10    ],
     11  });
     12 
     13  await runJSCacheTests([
     14    {
     15      title: "SRI on classic",
     16      items: [
     17        {
     18          file: "file_js_cache_large.js",
     19          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     20          events: [
     21            ev("load:source", "file_js_cache_large.js"),
     22            ev("evaluate:classic", "file_js_cache_large.js"),
     23            ev("diskcache:disabled", "file_js_cache_large.js"),
     24          ],
     25        },
     26        {
     27          file: "file_js_cache_large.js",
     28          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     29          events: [
     30            ev("load:source", "file_js_cache_large.js"),
     31            ev("evaluate:classic", "file_js_cache_large.js"),
     32            ev("diskcache:disabled", "file_js_cache_large.js"),
     33          ],
     34        },
     35        {
     36          file: "file_js_cache_large.js",
     37          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     38          events: [
     39            ev("load:source", "file_js_cache_large.js"),
     40            ev("evaluate:classic", "file_js_cache_large.js"),
     41            ev("diskcache:disabled", "file_js_cache_large.js"),
     42          ],
     43        },
     44        {
     45          file: "file_js_cache_large.js",
     46          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     47          events: [
     48            ev("load:source", "file_js_cache_large.js"),
     49            ev("evaluate:classic", "file_js_cache_large.js"),
     50            ev("diskcache:register", "file_js_cache_large.js"),
     51            ev("diskcache:saved", "file_js_cache_large.js", false),
     52          ],
     53        },
     54        {
     55          file: "file_js_cache_large.js",
     56          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     57          events: [
     58            ev("load:diskcache", "file_js_cache_large.js"),
     59            ev("evaluate:classic", "file_js_cache_large.js"),
     60            ev("diskcache:disabled", "file_js_cache_large.js"),
     61          ],
     62        },
     63      ],
     64    },
     65 
     66    {
     67      title: "SRI on module",
     68      module: true,
     69      items: [
     70        {
     71          file: "file_js_cache_large.js",
     72          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     73          events: [
     74            ev("load:source", "file_js_cache_large.js"),
     75            ev("evaluate:module", "file_js_cache_large.js"),
     76            ev("diskcache:disabled", "file_js_cache_large.js"),
     77          ],
     78        },
     79        {
     80          file: "file_js_cache_large.js",
     81          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     82          events: [
     83            ev("load:source", "file_js_cache_large.js"),
     84            ev("evaluate:module", "file_js_cache_large.js"),
     85            ev("diskcache:disabled", "file_js_cache_large.js"),
     86          ],
     87        },
     88        {
     89          file: "file_js_cache_large.js",
     90          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     91          events: [
     92            ev("load:source", "file_js_cache_large.js"),
     93            ev("evaluate:module", "file_js_cache_large.js"),
     94            ev("diskcache:disabled", "file_js_cache_large.js"),
     95          ],
     96        },
     97        {
     98          file: "file_js_cache_large.js",
     99          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    100          events: [
    101            ev("load:source", "file_js_cache_large.js"),
    102            ev("evaluate:module", "file_js_cache_large.js"),
    103            ev("diskcache:register", "file_js_cache_large.js"),
    104            ev("diskcache:saved", "file_js_cache_large.js", false),
    105          ],
    106        },
    107        {
    108          file: "file_js_cache_large.js",
    109          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    110          events: [
    111            ev("load:diskcache", "file_js_cache_large.js"),
    112            ev("evaluate:module", "file_js_cache_large.js"),
    113            ev("diskcache:disabled", "file_js_cache_large.js"),
    114          ],
    115        },
    116      ],
    117    },
    118  ]);
    119 
    120  await SpecialPowers.popPrefEnv();
    121 });
    122 
    123 add_task(async function testMemoryCache_SRI() {
    124  if (!AppConstants.NIGHTLY_BUILD) {
    125    todo(false, "navigation cache is not yet enabled on non-nightly");
    126    return;
    127  }
    128 
    129  await SpecialPowers.pushPrefEnv({
    130    set: [
    131      ["dom.expose_test_interfaces", true],
    132      ["dom.script_loader.bytecode_cache.enabled", true],
    133      ["dom.script_loader.bytecode_cache.strategy", 0],
    134      ["dom.script_loader.experimental.navigation_cache", true],
    135    ],
    136  });
    137 
    138  await runJSCacheTests([
    139    {
    140      title: "SRI on classic",
    141      items: [
    142        {
    143          file: "file_js_cache_large.js",
    144          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    145          events: [
    146            ev("load:source", "file_js_cache_large.js"),
    147            ev("memorycache:saved", "file_js_cache_large.js"),
    148            ev("evaluate:classic", "file_js_cache_large.js"),
    149            ev("diskcache:noschedule"),
    150          ],
    151        },
    152        {
    153          file: "file_js_cache_large.js",
    154          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    155          events: [
    156            ev("load:memorycache", "file_js_cache_large.js"),
    157            ev("evaluate:classic", "file_js_cache_large.js"),
    158            ev("diskcache:noschedule"),
    159          ],
    160        },
    161        {
    162          file: "file_js_cache_large.js",
    163          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    164          events: [
    165            ev("load:memorycache", "file_js_cache_large.js"),
    166            ev("evaluate:classic", "file_js_cache_large.js"),
    167            ev("diskcache:noschedule"),
    168          ],
    169        },
    170        {
    171          file: "file_js_cache_large.js",
    172          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    173          events: [
    174            ev("load:memorycache", "file_js_cache_large.js"),
    175            ev("evaluate:classic", "file_js_cache_large.js"),
    176            ev("diskcache:saved", "file_js_cache_large.js", false),
    177          ],
    178        },
    179        {
    180          file: "file_js_cache_large.js",
    181          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    182          events: [
    183            ev("load:memorycache", "file_js_cache_large.js"),
    184            ev("evaluate:classic", "file_js_cache_large.js"),
    185            ev("diskcache:noschedule"),
    186          ],
    187        },
    188      ],
    189    },
    190 
    191    {
    192      title: "SRI on module",
    193      module: true,
    194      items: [
    195        {
    196          file: "file_js_cache_large.js",
    197          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    198          events: [
    199            ev("load:source", "file_js_cache_large.js"),
    200            ev("memorycache:saved", "file_js_cache_large.js"),
    201            ev("evaluate:module", "file_js_cache_large.js"),
    202            ev("diskcache:noschedule"),
    203          ],
    204        },
    205        {
    206          file: "file_js_cache_large.js",
    207          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    208          events: [
    209            ev("load:memorycache", "file_js_cache_large.js"),
    210            ev("evaluate:module", "file_js_cache_large.js"),
    211            ev("diskcache:noschedule"),
    212          ],
    213        },
    214        {
    215          file: "file_js_cache_large.js",
    216          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    217          events: [
    218            ev("load:memorycache", "file_js_cache_large.js"),
    219            ev("evaluate:module", "file_js_cache_large.js"),
    220            ev("diskcache:noschedule"),
    221          ],
    222        },
    223        {
    224          file: "file_js_cache_large.js",
    225          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    226          events: [
    227            ev("load:memorycache", "file_js_cache_large.js"),
    228            ev("evaluate:module", "file_js_cache_large.js"),
    229            ev("diskcache:saved", "file_js_cache_large.js", false),
    230          ],
    231        },
    232        {
    233          file: "file_js_cache_large.js",
    234          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    235          events: [
    236            ev("load:memorycache", "file_js_cache_large.js"),
    237            ev("evaluate:module", "file_js_cache_large.js"),
    238            ev("diskcache:noschedule"),
    239          ],
    240        },
    241      ],
    242    },
    243  ]);
    244 
    245  await SpecialPowers.popPrefEnv();
    246 });