tor-browser

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

commit f932c8249aa653fd4dc5de38a9a6108dcb84036a
parent a971c7a270f5ed13db50023d31a5b7ea0cfbdc07
Author: Tooru Fujisawa <arai_a@mac.com>
Date:   Tue, 11 Nov 2025 05:42:36 +0000

Bug 1999071 - Allow random order around imported modules. r=bthrall

Differential Revision: https://phabricator.services.mozilla.com/D271879

Diffstat:
Mdom/base/test/browser_script_loader_js_cache_dyn_import.js | 184+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Mdom/base/test/browser_script_loader_js_cache_module.js | 102+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
2 files changed, 196 insertions(+), 90 deletions(-)

diff --git a/dom/base/test/browser_script_loader_js_cache_dyn_import.js b/dom/base/test/browser_script_loader_js_cache_dyn_import.js @@ -21,12 +21,26 @@ add_task(async function testDiskCache_dynamicImport() { ev("load:source", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), ev("diskcache:disabled", "file_js_cache_dyn_importer.mjs"), - ev("load:source", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported1.mjs", false), - ev("load:source", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported2.mjs", false), - ev("load:source", "file_js_cache_dyn_imported3.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_dyn_imported1.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported1.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported2.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported2.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported3.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported3.mjs", + false + ), + ]), ], }, { @@ -35,12 +49,26 @@ add_task(async function testDiskCache_dynamicImport() { ev("load:source", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), ev("diskcache:disabled", "file_js_cache_dyn_importer.mjs"), - ev("load:source", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported1.mjs", false), - ev("load:source", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported2.mjs", false), - ev("load:source", "file_js_cache_dyn_imported3.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_dyn_imported1.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported1.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported2.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported2.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported3.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported3.mjs", + false + ), + ]), ], }, { @@ -49,12 +77,26 @@ add_task(async function testDiskCache_dynamicImport() { ev("load:source", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), ev("diskcache:disabled", "file_js_cache_dyn_importer.mjs"), - ev("load:source", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported1.mjs", false), - ev("load:source", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported2.mjs", false), - ev("load:source", "file_js_cache_dyn_imported3.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_dyn_imported1.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported1.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported2.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported2.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported3.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported3.mjs", + false + ), + ]), ], }, { @@ -63,16 +105,32 @@ add_task(async function testDiskCache_dynamicImport() { ev("load:source", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), ev("diskcache:register", "file_js_cache_dyn_importer.mjs"), - ev("load:source", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:register", "file_js_cache_dyn_imported1.mjs", false), - ev("load:source", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:register", "file_js_cache_dyn_imported2.mjs", false), - ev("load:source", "file_js_cache_dyn_imported3.mjs", false), - ev("diskcache:register", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_dyn_imported1.mjs", false), + ev( + "diskcache:register", + "file_js_cache_dyn_imported1.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported2.mjs", false), + ev( + "diskcache:register", + "file_js_cache_dyn_imported2.mjs", + false + ), + ev("load:source", "file_js_cache_dyn_imported3.mjs", false), + ev( + "diskcache:register", + "file_js_cache_dyn_imported3.mjs", + false + ), + ]), ev("diskcache:saved", "file_js_cache_dyn_importer.mjs", false), - ev("diskcache:saved", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:saved", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:saved", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("diskcache:saved", "file_js_cache_dyn_imported1.mjs", false), + ev("diskcache:saved", "file_js_cache_dyn_imported2.mjs", false), + ev("diskcache:saved", "file_js_cache_dyn_imported3.mjs", false), + ]), ], }, { @@ -81,12 +139,26 @@ add_task(async function testDiskCache_dynamicImport() { ev("load:diskcache", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), ev("diskcache:disabled", "file_js_cache_dyn_importer.mjs"), - ev("load:diskcache", "file_js_cache_dyn_imported1.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported1.mjs", false), - ev("load:diskcache", "file_js_cache_dyn_imported2.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported2.mjs", false), - ev("load:diskcache", "file_js_cache_dyn_imported3.mjs", false), - ev("diskcache:disabled", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:diskcache", "file_js_cache_dyn_imported1.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported1.mjs", + false + ), + ev("load:diskcache", "file_js_cache_dyn_imported2.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported2.mjs", + false + ), + ev("load:diskcache", "file_js_cache_dyn_imported3.mjs", false), + ev( + "diskcache:disabled", + "file_js_cache_dyn_imported3.mjs", + false + ), + ]), ], }, ], @@ -122,12 +194,14 @@ add_task(async function testMemoryCache_dynamicImport() { ev("load:source", "file_js_cache_dyn_importer.mjs"), ev("memorycache:saved", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), - ev("load:source", "file_js_cache_dyn_imported1.mjs", false), - ev("memorycache:saved", "file_js_cache_dyn_imported1.mjs", false), - ev("load:source", "file_js_cache_dyn_imported2.mjs", false), - ev("memorycache:saved", "file_js_cache_dyn_imported2.mjs", false), - ev("load:source", "file_js_cache_dyn_imported3.mjs", false), - ev("memorycache:saved", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_dyn_imported1.mjs", false), + ev("memorycache:saved", "file_js_cache_dyn_imported1.mjs", false), + ev("load:source", "file_js_cache_dyn_imported2.mjs", false), + ev("memorycache:saved", "file_js_cache_dyn_imported2.mjs", false), + ev("load:source", "file_js_cache_dyn_imported3.mjs", false), + ev("memorycache:saved", "file_js_cache_dyn_imported3.mjs", false), + ]), ev("diskcache:noschedule"), ], }, @@ -136,9 +210,11 @@ add_task(async function testMemoryCache_dynamicImport() { events: [ ev("load:memorycache", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), - ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + ]), ev("diskcache:noschedule"), ], }, @@ -147,9 +223,11 @@ add_task(async function testMemoryCache_dynamicImport() { events: [ ev("load:memorycache", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), - ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + ]), ev("diskcache:noschedule"), ], }, @@ -158,9 +236,11 @@ add_task(async function testMemoryCache_dynamicImport() { events: [ ev("load:memorycache", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), - ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + ]), unordered([ ev("diskcache:saved", "file_js_cache_dyn_importer.mjs", false), ev("diskcache:saved", "file_js_cache_dyn_imported1.mjs", false), @@ -174,9 +254,11 @@ add_task(async function testMemoryCache_dynamicImport() { events: [ ev("load:memorycache", "file_js_cache_dyn_importer.mjs"), ev("evaluate:module", "file_js_cache_dyn_importer.mjs"), - ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_dyn_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_dyn_imported3.mjs", false), + ]), ev("diskcache:noschedule"), ], }, diff --git a/dom/base/test/browser_script_loader_js_cache_module.js b/dom/base/test/browser_script_loader_js_cache_module.js @@ -101,9 +101,11 @@ add_task(async function testDiskCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:source", "file_js_cache_importer.mjs"), - ev("load:source", "file_js_cache_imported1.mjs", false), - ev("load:source", "file_js_cache_imported2.mjs", false), - ev("load:source", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_imported1.mjs", false), + ev("load:source", "file_js_cache_imported2.mjs", false), + ev("load:source", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:disabled", "file_js_cache_importer.mjs"), // non-top-level modules that don't pass the condition @@ -114,9 +116,11 @@ add_task(async function testDiskCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:source", "file_js_cache_importer.mjs"), - ev("load:source", "file_js_cache_imported1.mjs", false), - ev("load:source", "file_js_cache_imported2.mjs", false), - ev("load:source", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_imported1.mjs", false), + ev("load:source", "file_js_cache_imported2.mjs", false), + ev("load:source", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:disabled", "file_js_cache_importer.mjs"), ], @@ -125,9 +129,11 @@ add_task(async function testDiskCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:source", "file_js_cache_importer.mjs"), - ev("load:source", "file_js_cache_imported1.mjs", false), - ev("load:source", "file_js_cache_imported2.mjs", false), - ev("load:source", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_imported1.mjs", false), + ev("load:source", "file_js_cache_imported2.mjs", false), + ev("load:source", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:disabled", "file_js_cache_importer.mjs"), ], @@ -136,27 +142,35 @@ add_task(async function testDiskCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:source", "file_js_cache_importer.mjs"), - ev("load:source", "file_js_cache_imported1.mjs", false), - ev("load:source", "file_js_cache_imported2.mjs", false), - ev("load:source", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_imported1.mjs", false), + ev("load:source", "file_js_cache_imported2.mjs", false), + ev("load:source", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:register", "file_js_cache_importer.mjs"), - ev("diskcache:register", "file_js_cache_imported1.mjs", false), - ev("diskcache:register", "file_js_cache_imported2.mjs", false), - ev("diskcache:register", "file_js_cache_imported3.mjs", false), + unordered([ + ev("diskcache:register", "file_js_cache_imported1.mjs", false), + ev("diskcache:register", "file_js_cache_imported2.mjs", false), + ev("diskcache:register", "file_js_cache_imported3.mjs", false), + ]), ev("diskcache:saved", "file_js_cache_importer.mjs", false), - ev("diskcache:saved", "file_js_cache_imported1.mjs", false), - ev("diskcache:saved", "file_js_cache_imported2.mjs", false), - ev("diskcache:saved", "file_js_cache_imported3.mjs", false), + unordered([ + ev("diskcache:saved", "file_js_cache_imported1.mjs", false), + ev("diskcache:saved", "file_js_cache_imported2.mjs", false), + ev("diskcache:saved", "file_js_cache_imported3.mjs", false), + ]), ], }, { file: "file_js_cache_importer.mjs", events: [ ev("load:diskcache", "file_js_cache_importer.mjs"), - ev("load:diskcache", "file_js_cache_imported1.mjs", false), - ev("load:diskcache", "file_js_cache_imported2.mjs", false), - ev("load:diskcache", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:diskcache", "file_js_cache_imported1.mjs", false), + ev("load:diskcache", "file_js_cache_imported2.mjs", false), + ev("load:diskcache", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:disabled", "file_js_cache_importer.mjs"), ], @@ -284,12 +298,14 @@ add_task(async function testMemoryCache_modules() { events: [ ev("load:source", "file_js_cache_importer.mjs"), ev("memorycache:saved", "file_js_cache_importer.mjs"), - ev("load:source", "file_js_cache_imported1.mjs", false), - ev("memorycache:saved", "file_js_cache_imported1.mjs", false), - ev("load:source", "file_js_cache_imported2.mjs", false), - ev("memorycache:saved", "file_js_cache_imported2.mjs", false), - ev("load:source", "file_js_cache_imported3.mjs", false), - ev("memorycache:saved", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:source", "file_js_cache_imported1.mjs", false), + ev("memorycache:saved", "file_js_cache_imported1.mjs", false), + ev("load:source", "file_js_cache_imported2.mjs", false), + ev("memorycache:saved", "file_js_cache_imported2.mjs", false), + ev("load:source", "file_js_cache_imported3.mjs", false), + ev("memorycache:saved", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:noschedule"), ], @@ -298,9 +314,11 @@ add_task(async function testMemoryCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:memorycache", "file_js_cache_importer.mjs"), - ev("load:memorycache", "file_js_cache_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:noschedule"), ], @@ -309,9 +327,11 @@ add_task(async function testMemoryCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:memorycache", "file_js_cache_importer.mjs"), - ev("load:memorycache", "file_js_cache_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:noschedule"), ], @@ -320,9 +340,11 @@ add_task(async function testMemoryCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:memorycache", "file_js_cache_importer.mjs"), - ev("load:memorycache", "file_js_cache_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), // SharedScriptCache iterates over unordered hashmap while // saving. @@ -338,9 +360,11 @@ add_task(async function testMemoryCache_modules() { file: "file_js_cache_importer.mjs", events: [ ev("load:memorycache", "file_js_cache_importer.mjs"), - ev("load:memorycache", "file_js_cache_imported1.mjs", false), - ev("load:memorycache", "file_js_cache_imported2.mjs", false), - ev("load:memorycache", "file_js_cache_imported3.mjs", false), + unordered([ + ev("load:memorycache", "file_js_cache_imported1.mjs", false), + ev("load:memorycache", "file_js_cache_imported2.mjs", false), + ev("load:memorycache", "file_js_cache_imported3.mjs", false), + ]), ev("evaluate:module", "file_js_cache_importer.mjs"), ev("diskcache:noschedule"), ],