diff --git a/devtools/client/framework/test/metrics/browser_metrics_debugger.js b/devtools/client/framework/test/metrics/browser_metrics_debugger.js
index 63910d3a0957..4ca24a0bbb79 100644
--- a/devtools/client/framework/test/metrics/browser_metrics_debugger.js
+++ b/devtools/client/framework/test/metrics/browser_metrics_debugger.js
@@ -14,11 +14,17 @@ const TEST_URL =
add_task(async function() {
const toolbox = await openNewTabAndToolbox(TEST_URL, "jsdebugger");
- const panel = toolbox.getCurrentPanel();
+ const toolboxBrowserLoader = toolbox.win.getBrowserLoaderForWindow();
// Retrieve the browser loader dedicated to the Debugger.
+ const panel = toolbox.getCurrentPanel();
const debuggerLoader = panel.panelWin.getBrowserLoaderForWindow();
- const loaders = [loader.loader, debuggerLoader.loader];
+
+ const loaders = [
+ loader.loader,
+ toolboxBrowserLoader.loader,
+ debuggerLoader.loader,
+ ];
const whitelist = [
"@loader/unload.js",
@@ -33,6 +39,7 @@ add_task(async function() {
"resource://devtools/client/shared/vendor/react-redux.js",
"resource://devtools/client/shared/vendor/redux.js",
"resource://devtools/client/debugger/src/workers/parser/index.js",
+ "resource://devtools/client/shared/source-map/index.js",
];
runDuplicatedModulesTest(loaders, whitelist);
diff --git a/devtools/client/framework/test/metrics/browser_metrics_inspector.js b/devtools/client/framework/test/metrics/browser_metrics_inspector.js
index 7c976bc8ccc2..7d50e4e6c7b7 100644
--- a/devtools/client/framework/test/metrics/browser_metrics_inspector.js
+++ b/devtools/client/framework/test/metrics/browser_metrics_inspector.js
@@ -13,14 +13,30 @@ const TEST_URL =
"data:text/html;charset=UTF-8,
Inspector modules load test
";
add_task(async function() {
- await openNewTabAndToolbox(TEST_URL, "inspector");
+ const toolbox = await openNewTabAndToolbox(TEST_URL, "inspector");
+ const toolboxBrowserLoader = toolbox.win.getBrowserLoaderForWindow();
- // The inspector does not use a dedicated browser loader.
- const loaders = [loader.loader];
+ // Most panels involve three loaders:
+ // - the global devtools loader
+ // - the browser loader used by the toolbox
+ // - a specific browser loader created for the panel
+ // But the inspector is a specific case, because it reuses the BrowserLoader
+ // of the toolbox to load its react components. This is why we only list
+ // two loaders here.
+ const loaders = [loader.loader, toolboxBrowserLoader.loader];
- // Duplicated modules whitelist for the inspector is empty because the
- // inspector is only using the DevTools loader.
- runDuplicatedModulesTest(loaders, []);
+ runDuplicatedModulesTest(loaders, [
+ "@loader/unload.js",
+ "@loader/options.js",
+ "chrome.js",
+ "resource://devtools/client/shared/vendor/react.js",
+ "resource://devtools/client/shared/vendor/react-dom-factories.js",
+ "resource://devtools/client/shared/vendor/react-prop-types.js",
+ "resource://devtools/client/shared/vendor/react-redux.js",
+ "resource://devtools/client/shared/vendor/redux.js",
+ "resource://devtools/client/inspector/flexbox/actions/index.js",
+ "resource://devtools/client/inspector/grids/actions/index.js",
+ ]);
runMetricsTest({
filterString: "devtools/client/inspector",
diff --git a/devtools/client/framework/test/metrics/browser_metrics_netmonitor.js b/devtools/client/framework/test/metrics/browser_metrics_netmonitor.js
index e83d584e94a5..e4f6008af94a 100644
--- a/devtools/client/framework/test/metrics/browser_metrics_netmonitor.js
+++ b/devtools/client/framework/test/metrics/browser_metrics_netmonitor.js
@@ -14,11 +14,17 @@ const TEST_URL =
add_task(async function() {
const toolbox = await openNewTabAndToolbox(TEST_URL, "netmonitor");
- const panel = toolbox.getCurrentPanel();
+ const toolboxBrowserLoader = toolbox.win.getBrowserLoaderForWindow();
// Retrieve the browser loader dedicated to the Netmonitor.
+ const panel = toolbox.getCurrentPanel();
const netmonitorLoader = panel.panelWin.getBrowserLoaderForWindow();
- const loaders = [loader.loader, netmonitorLoader.loader];
+
+ const loaders = [
+ loader.loader,
+ toolboxBrowserLoader.loader,
+ netmonitorLoader.loader,
+ ];
// Uncomment after Bug 1581068 is fixed, otherwise the test might fail too
// frequently.
diff --git a/devtools/client/framework/test/metrics/browser_metrics_webconsole.js b/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
index 5d4744863c67..e313396cf77f 100644
--- a/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
+++ b/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
@@ -14,11 +14,17 @@ const TEST_URL =
add_task(async function() {
const toolbox = await openNewTabAndToolbox(TEST_URL, "webconsole");
- const panel = toolbox.getCurrentPanel();
+ const toolboxBrowserLoader = toolbox.win.getBrowserLoaderForWindow();
// Retrieve the browser loader dedicated to the WebConsole.
+ const panel = toolbox.getCurrentPanel();
const webconsoleLoader = panel._frameWindow.getBrowserLoaderForWindow();
- const loaders = [loader.loader, webconsoleLoader.loader];
+
+ const loaders = [
+ loader.loader,
+ toolboxBrowserLoader.loader,
+ webconsoleLoader.loader,
+ ];
const whitelist = [
"@loader/unload.js",
@@ -30,6 +36,10 @@ add_task(async function() {
"resource://devtools/client/webconsole/utils/l10n.js",
"resource://devtools/client/netmonitor/src/utils/request-utils.js",
"resource://devtools/client/webconsole/types.js",
+ "resource://devtools/client/shared/vendor/react.js",
+ "resource://devtools/client/shared/vendor/react-dom.js",
+ "resource://devtools/client/shared/vendor/react-prop-types.js",
+ "resource://devtools/client/shared/vendor/react-dom-factories.js",
];
runDuplicatedModulesTest(loaders, whitelist);