Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: dom/base/test/browser.toml
// 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 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() {
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 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();
});