browser_script_loader_js_cache_dirty.js (4741B)
1 // ev, unordered, and runJSCacheTests are defined in head.js 2 3 add_task(async function testMemoryCache_dirtyStateClassic() { 4 if (!AppConstants.NIGHTLY_BUILD) { 5 todo(false, "navigation cache is not yet enabled on non-nightly"); 6 return; 7 } 8 9 await SpecialPowers.pushPrefEnv({ 10 set: [ 11 ["dom.expose_test_interfaces", true], 12 ["dom.script_loader.bytecode_cache.enabled", true], 13 ["dom.script_loader.bytecode_cache.strategy", 0], 14 ["dom.script_loader.experimental.navigation_cache", true], 15 ], 16 }); 17 18 await runJSCacheTests([ 19 { 20 title: "dirty state revive classic", 21 items: [ 22 { 23 file: "file_js_cache_large.js", 24 events: [ 25 ev("load:source", "file_js_cache_large.js"), 26 ev("memorycache:saved", "file_js_cache_large.js"), 27 ev("evaluate:classic", "file_js_cache_large.js"), 28 ev("diskcache:noschedule"), 29 ], 30 }, 31 { 32 file: "file_js_cache_large.js", 33 events: [ 34 ev("load:memorycache", "file_js_cache_large.js"), 35 ev("evaluate:classic", "file_js_cache_large.js"), 36 ev("diskcache:noschedule"), 37 ], 38 }, 39 { 40 invalidateMemory: true, 41 file: "file_js_cache_large.js", 42 events: [ 43 ev("memorycache:dirty:hit", "file_js_cache_large.js"), 44 ev("load:source", "file_js_cache_large.js"), 45 ev("memorycache:dirty:revived", "file_js_cache_large.js"), 46 ev("evaluate:classic", "file_js_cache_large.js"), 47 ev("diskcache:noschedule"), 48 ], 49 }, 50 { 51 file: "file_js_cache_large.js", 52 events: [ 53 ev("load:memorycache", "file_js_cache_large.js"), 54 ev("evaluate:classic", "file_js_cache_large.js"), 55 ev("diskcache:saved", "file_js_cache_large.js", false), 56 ], 57 }, 58 { 59 file: "file_js_cache_large.js", 60 events: [ 61 ev("load:memorycache", "file_js_cache_large.js"), 62 ev("evaluate:classic", "file_js_cache_large.js"), 63 ev("diskcache:noschedule"), 64 ], 65 }, 66 { 67 file: "file_js_cache_large.js", 68 events: [ 69 ev("load:memorycache", "file_js_cache_large.js"), 70 ev("evaluate:classic", "file_js_cache_large.js"), 71 ev("diskcache:noschedule"), 72 ], 73 }, 74 ], 75 }, 76 { 77 title: "dirty state evict classic", 78 items: [ 79 { 80 file: "file_js_cache_large.js", 81 events: [ 82 ev("load:source", "file_js_cache_large.js"), 83 ev("memorycache:saved", "file_js_cache_large.js"), 84 ev("evaluate:classic", "file_js_cache_large.js"), 85 ev("diskcache:noschedule"), 86 ], 87 }, 88 { 89 file: "file_js_cache_large.js", 90 events: [ 91 ev("load:memorycache", "file_js_cache_large.js"), 92 ev("evaluate:classic", "file_js_cache_large.js"), 93 ev("diskcache:noschedule"), 94 ], 95 }, 96 { 97 invalidateMemory: true, 98 clearDisk: true, 99 file: "file_js_cache_large.js", 100 events: [ 101 ev("memorycache:dirty:hit", "file_js_cache_large.js"), 102 ev("load:source", "file_js_cache_large.js"), 103 ev("memorycache:dirty:evicted", "file_js_cache_large.js"), 104 ev("memorycache:saved", "file_js_cache_large.js"), 105 ev("evaluate:classic", "file_js_cache_large.js"), 106 ev("diskcache:noschedule"), 107 ], 108 }, 109 { 110 file: "file_js_cache_large.js", 111 events: [ 112 ev("load:memorycache", "file_js_cache_large.js"), 113 ev("evaluate:classic", "file_js_cache_large.js"), 114 ev("diskcache:noschedule"), 115 ], 116 }, 117 { 118 file: "file_js_cache_large.js", 119 events: [ 120 ev("load:memorycache", "file_js_cache_large.js"), 121 ev("evaluate:classic", "file_js_cache_large.js"), 122 ev("diskcache:noschedule"), 123 ], 124 }, 125 { 126 file: "file_js_cache_large.js", 127 events: [ 128 ev("load:memorycache", "file_js_cache_large.js"), 129 ev("evaluate:classic", "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 events: [ 136 ev("load:memorycache", "file_js_cache_large.js"), 137 ev("evaluate:classic", "file_js_cache_large.js"), 138 ev("diskcache:noschedule"), 139 ], 140 }, 141 ], 142 }, 143 ]); 144 145 await SpecialPowers.popPrefEnv(); 146 });