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_different.js (11894B)


      1 // ev, unordered, and runJSCacheTests are defined in head.js
      2 
      3 add_task(async function testDiskCache_DifferentSRI() {
      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  // If different SRI is specified after the disk cache is created, it should
     14  // fallback to the source, and then save again with the SRI.
     15  await runJSCacheTests([
     16    {
     17      title: "different SRI on classic after save",
     18      items: [
     19        {
     20          file: "file_js_cache_large.js",
     21          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     22          events: [
     23            ev("load:source", "file_js_cache_large.js"),
     24            ev("evaluate:classic", "file_js_cache_large.js"),
     25            ev("diskcache:disabled", "file_js_cache_large.js"),
     26          ],
     27        },
     28        {
     29          file: "file_js_cache_large.js",
     30          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     31          events: [
     32            ev("load:source", "file_js_cache_large.js"),
     33            ev("evaluate:classic", "file_js_cache_large.js"),
     34            ev("diskcache:disabled", "file_js_cache_large.js"),
     35          ],
     36        },
     37        {
     38          file: "file_js_cache_large.js",
     39          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     40          events: [
     41            ev("load:source", "file_js_cache_large.js"),
     42            ev("evaluate:classic", "file_js_cache_large.js"),
     43            ev("diskcache:disabled", "file_js_cache_large.js"),
     44          ],
     45        },
     46        {
     47          file: "file_js_cache_large.js",
     48          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     49          events: [
     50            ev("load:source", "file_js_cache_large.js"),
     51            ev("evaluate:classic", "file_js_cache_large.js"),
     52            ev("diskcache:register", "file_js_cache_large.js"),
     53            ev("diskcache:saved", "file_js_cache_large.js", false),
     54          ],
     55        },
     56        {
     57          file: "file_js_cache_large.js",
     58          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
     59          events: [
     60            ev("load:diskcache", "file_js_cache_large.js"),
     61            ev("load:fallback", "file_js_cache_large.js"),
     62            ev("load:source", "file_js_cache_large.js"),
     63            ev("evaluate:classic", "file_js_cache_large.js"),
     64            ev("diskcache:register", "file_js_cache_large.js"),
     65            ev("diskcache:saved", "file_js_cache_large.js", false),
     66          ],
     67        },
     68        {
     69          file: "file_js_cache_large.js",
     70          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
     71          events: [
     72            ev("load:diskcache", "file_js_cache_large.js"),
     73            ev("evaluate:classic", "file_js_cache_large.js"),
     74            ev("diskcache:disabled", "file_js_cache_large.js"),
     75          ],
     76        },
     77      ],
     78    },
     79 
     80    {
     81      title: "different SRI on module after save",
     82      module: true,
     83      items: [
     84        {
     85          file: "file_js_cache_large.js",
     86          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     87          events: [
     88            ev("load:source", "file_js_cache_large.js"),
     89            ev("evaluate:module", "file_js_cache_large.js"),
     90            ev("diskcache:disabled", "file_js_cache_large.js"),
     91          ],
     92        },
     93        {
     94          file: "file_js_cache_large.js",
     95          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
     96          events: [
     97            ev("load:source", "file_js_cache_large.js"),
     98            ev("evaluate:module", "file_js_cache_large.js"),
     99            ev("diskcache:disabled", "file_js_cache_large.js"),
    100          ],
    101        },
    102        {
    103          file: "file_js_cache_large.js",
    104          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    105          events: [
    106            ev("load:source", "file_js_cache_large.js"),
    107            ev("evaluate:module", "file_js_cache_large.js"),
    108            ev("diskcache:disabled", "file_js_cache_large.js"),
    109          ],
    110        },
    111        {
    112          file: "file_js_cache_large.js",
    113          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    114          events: [
    115            ev("load:source", "file_js_cache_large.js"),
    116            ev("evaluate:module", "file_js_cache_large.js"),
    117            ev("diskcache:register", "file_js_cache_large.js"),
    118            ev("diskcache:saved", "file_js_cache_large.js", false),
    119          ],
    120        },
    121        {
    122          file: "file_js_cache_large.js",
    123          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    124          events: [
    125            ev("load:diskcache", "file_js_cache_large.js"),
    126            ev("load:fallback", "file_js_cache_large.js"),
    127            ev("load:source", "file_js_cache_large.js"),
    128            ev("evaluate:module", "file_js_cache_large.js"),
    129            ev("diskcache:register", "file_js_cache_large.js"),
    130            ev("diskcache:saved", "file_js_cache_large.js", false),
    131          ],
    132        },
    133        {
    134          file: "file_js_cache_large.js",
    135          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    136          events: [
    137            ev("load:diskcache", "file_js_cache_large.js"),
    138            ev("evaluate:module", "file_js_cache_large.js"),
    139            ev("diskcache:disabled", "file_js_cache_large.js"),
    140          ],
    141        },
    142      ],
    143    },
    144  ]);
    145 
    146  await SpecialPowers.popPrefEnv();
    147 });
    148 
    149 add_task(async function testMemoryCache_DifferentSRI() {
    150  if (!AppConstants.NIGHTLY_BUILD) {
    151    todo(false, "navigation cache is not yet enabled on non-nightly");
    152    return;
    153  }
    154 
    155  await SpecialPowers.pushPrefEnv({
    156    set: [
    157      ["dom.expose_test_interfaces", true],
    158      ["dom.script_loader.bytecode_cache.enabled", true],
    159      ["dom.script_loader.bytecode_cache.strategy", 0],
    160      ["dom.script_loader.experimental.navigation_cache", true],
    161    ],
    162  });
    163 
    164  // If different SRI is specified after the disk cache is created, it should
    165  // fallback to the source, and then save again with the SRI.
    166  await runJSCacheTests([
    167    {
    168      title: "different SRI on classic after save",
    169      items: [
    170        {
    171          file: "file_js_cache_large.js",
    172          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    173          events: [
    174            ev("load:source", "file_js_cache_large.js"),
    175            ev("memorycache:saved", "file_js_cache_large.js"),
    176            ev("evaluate:classic", "file_js_cache_large.js"),
    177            ev("diskcache:noschedule"),
    178          ],
    179        },
    180        {
    181          file: "file_js_cache_large.js",
    182          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    183          events: [
    184            ev("load:memorycache", "file_js_cache_large.js"),
    185            ev("evaluate:classic", "file_js_cache_large.js"),
    186            ev("diskcache:noschedule"),
    187          ],
    188        },
    189        {
    190          file: "file_js_cache_large.js",
    191          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    192          events: [
    193            ev("load:memorycache", "file_js_cache_large.js"),
    194            ev("evaluate:classic", "file_js_cache_large.js"),
    195            ev("diskcache:noschedule"),
    196          ],
    197        },
    198        {
    199          file: "file_js_cache_large.js",
    200          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    201          events: [
    202            ev("load:memorycache", "file_js_cache_large.js"),
    203            ev("evaluate:classic", "file_js_cache_large.js"),
    204            ev("diskcache:saved", "file_js_cache_large.js", false),
    205          ],
    206        },
    207        {
    208          file: "file_js_cache_large.js",
    209          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    210          events: [
    211            ev("load:diskcache", "file_js_cache_large.js"),
    212            ev("load:fallback", "file_js_cache_large.js"),
    213            ev("load:source", "file_js_cache_large.js"),
    214            // At this point, the necko's fetch count is 3,
    215            // because of the following:
    216            //   * 0-th item's source load
    217            //   * this items's diskcache load
    218            //   * this items's source load
    219            ev("memorycache:saved", "file_js_cache_large.js"),
    220            ev("evaluate:classic", "file_js_cache_large.js"),
    221            ev("diskcache:noschedule"),
    222          ],
    223        },
    224        {
    225          file: "file_js_cache_large.js",
    226          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    227          events: [
    228            ev("load:memorycache", "file_js_cache_large.js"),
    229            ev("evaluate:classic", "file_js_cache_large.js"),
    230            ev("diskcache:saved", "file_js_cache_large.js", false),
    231          ],
    232        },
    233      ],
    234    },
    235 
    236    {
    237      title: "different SRI on module after save",
    238      module: true,
    239      items: [
    240        {
    241          file: "file_js_cache_large.js",
    242          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    243          events: [
    244            ev("load:source", "file_js_cache_large.js"),
    245            ev("memorycache:saved", "file_js_cache_large.js"),
    246            ev("evaluate:module", "file_js_cache_large.js"),
    247            ev("diskcache:noschedule"),
    248          ],
    249        },
    250        {
    251          file: "file_js_cache_large.js",
    252          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    253          events: [
    254            ev("load:memorycache", "file_js_cache_large.js"),
    255            ev("evaluate:module", "file_js_cache_large.js"),
    256            ev("diskcache:noschedule"),
    257          ],
    258        },
    259        {
    260          file: "file_js_cache_large.js",
    261          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    262          events: [
    263            ev("load:memorycache", "file_js_cache_large.js"),
    264            ev("evaluate:module", "file_js_cache_large.js"),
    265            ev("diskcache:noschedule"),
    266          ],
    267        },
    268        {
    269          file: "file_js_cache_large.js",
    270          sri: "sha384-vJ7r8qsSxGVQwKbj+5A1avW8CEb6bODkGULlUVOmqN81D6XQzaTFhspcWmO+PVSQ",
    271          events: [
    272            ev("load:memorycache", "file_js_cache_large.js"),
    273            ev("evaluate:module", "file_js_cache_large.js"),
    274            ev("diskcache:saved", "file_js_cache_large.js", false),
    275          ],
    276        },
    277        {
    278          file: "file_js_cache_large.js",
    279          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    280          events: [
    281            ev("load:diskcache", "file_js_cache_large.js"),
    282            ev("load:fallback", "file_js_cache_large.js"),
    283            ev("load:source", "file_js_cache_large.js"),
    284            // At this point, the necko's fetch count is 3.
    285            ev("memorycache:saved", "file_js_cache_large.js"),
    286            ev("evaluate:module", "file_js_cache_large.js"),
    287            ev("diskcache:noschedule"),
    288          ],
    289        },
    290        {
    291          file: "file_js_cache_large.js",
    292          sri: "sha512-NN5Pp0blZjckIohQdMbZwclYHNV3QXnL/UiR1R0h66KMc2zRCgfFQ56zpTd8UCYB/RkAQ6HUbPzlGr8JWUp6AQ==",
    293          events: [
    294            ev("load:memorycache", "file_js_cache_large.js"),
    295            ev("evaluate:module", "file_js_cache_large.js"),
    296            ev("diskcache:saved", "file_js_cache_large.js", false),
    297          ],
    298        },
    299      ],
    300    },
    301  ]);
    302 
    303  await SpecialPowers.popPrefEnv();
    304 });