tor-browser

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

browser_script_loader_js_cache_dyn_import.js (10075B)


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