// ev, unordered, and runJSCacheTests are defined in head.js add_task(async function testDiskCache_ServiceWorker() { await SpecialPowers.pushPrefEnv({ set: [ ["dom.expose_test_interfaces", true], ["dom.script_loader.bytecode_cache.enabled", true], ["dom.script_loader.bytecode_cache.strategy", 0], ["dom.script_loader.experimental.navigation_cache", false], ["dom.serviceWorkers.enabled", true], ["dom.serviceWorkers.testing.enabled", true], ], }); // The response from the ServiceWorker doesn't have the expiration time and // the fetch count (bug 1829240), and thus it's marked as Expired, and // the disk cache is not created. await runJSCacheTests([ { title: "service worker", useServiceWorker: true, skipReload: true, items: [ { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:disabled", "file_js_cache_large.js"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:disabled", "file_js_cache_large.js"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:disabled", "file_js_cache_large.js"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:disabled", "file_js_cache_large.js"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:disabled", "file_js_cache_large.js"), ], }, ], }, ]); await SpecialPowers.popPrefEnv(); }); add_task(async function testMemoryCache_ServiceWorker() { if (!AppConstants.NIGHTLY_BUILD) { todo(false, "navigation cache is not yet enabled on non-nightly"); return; } await SpecialPowers.pushPrefEnv({ set: [ ["dom.expose_test_interfaces", true], ["dom.script_loader.bytecode_cache.enabled", true], ["dom.script_loader.bytecode_cache.strategy", 0], ["dom.script_loader.experimental.navigation_cache", true], ["dom.serviceWorkers.enabled", true], ["dom.serviceWorkers.testing.enabled", true], ], }); // The response from the ServiceWorker doesn't have the expiration time and // the fetch count (bug 1829240), and thus it's marked as Expired, and // the memory cache and the disk cache are not created. // // The memorycache:evict notification happens when the script is expired, // regardless of whether there was in-memory cache entry. await runJSCacheTests([ { title: "service worker", useServiceWorker: true, skipReload: true, items: [ { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("memorycache:evict", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:noschedule"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("memorycache:evict", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:noschedule"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("memorycache:evict", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:noschedule"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("memorycache:evict", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:noschedule"), ], }, { file: "file_js_cache_large.js", events: [ ev("load:source", "file_js_cache_large.js"), ev("memorycache:evict", "file_js_cache_large.js"), ev("evaluate:classic", "file_js_cache_large.js"), ev("diskcache:noschedule"), ], }, ], }, ]); await SpecialPowers.popPrefEnv(); });