Bug 1583165 - Scan modules from toolbox BrowserLoader in DevTools metrics tests r=nchevobbe

Checking this browserloader is important in particular for the inspector, which uses it to load all its own react components.

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Julian Descottes 2019-09-25 09:25:23 +00:00
parent 7f8e465155
commit 0fda1a24d1
4 changed files with 51 additions and 12 deletions

View File

@ -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);

View File

@ -13,14 +13,30 @@ const TEST_URL =
"data:text/html;charset=UTF-8,<div>Inspector modules load test</div>";
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",

View File

@ -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.

View File

@ -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);