browser_metrics_debugger.js (2437B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * This test records the number of modules loaded by DevTools, as well as the total count 8 * of characters in those modules, when opening the debugger. These metrics are 9 * retrieved by perfherder via logs. 10 */ 11 12 const TEST_URL = 13 "data:text/html;charset=UTF-8,<div>Debugger modules load test</div>"; 14 15 add_task(async function () { 16 // Disable randomly spawning processes during tests 17 await pushPref("dom.ipc.processPrelaunch.enabled", false); 18 19 const toolbox = await openNewTabAndToolbox(TEST_URL, "jsdebugger"); 20 const toolboxBrowserLoader = toolbox.win.getBrowserLoaderForWindow(); 21 22 // Retrieve the browser loader dedicated to the Debugger. 23 const panel = toolbox.getCurrentPanel(); 24 const debuggerLoader = panel.panelWin.getBrowserLoaderForWindow(); 25 26 const loaders = [ 27 loader.loader, 28 toolboxBrowserLoader.loader, 29 debuggerLoader.loader, 30 ]; 31 32 const allowedDupes = [ 33 "@loader/unload.js", 34 "@loader/options.js", 35 "resource://devtools/client/shared/vendor/fluent-react.js", 36 "resource://devtools/client/shared/vendor/react-redux.js", 37 "resource://devtools/client/shared/vendor/redux.js", 38 "resource://devtools/client/shared/redux/subscriber.js", 39 "resource://devtools/client/shared/redux/middleware/ignore.js", 40 "resource://devtools/client/shared/redux/middleware/promise.js", 41 "resource://devtools/client/shared/redux/middleware/thunk.js", 42 "resource://devtools/client/shared/redux/middleware/wait-service.js", 43 44 // React components loaded from Toolbox and Panel BrowserLoaders 45 "resource://devtools/client/shared/components/menu/MenuButton.js", 46 "resource://devtools/client/shared/components/menu/MenuItem.js", 47 "resource://devtools/client/shared/components/menu/MenuList.js", 48 "resource://devtools/client/shared/components/AppErrorBoundary.js", 49 ]; 50 runDuplicatedModulesTest(loaders, allowedDupes); 51 52 runMetricsTest({ 53 filterString: "devtools/client/debugger", 54 loaders, 55 panelName: "debugger", 56 }); 57 58 // See Bug 1637793 and Bug 1621337. 59 // Ideally the debugger should only resolve when the worker targets have been 60 // retrieved, which should be fixed by Bug 1621337 or a followup. 61 info("Wait for all pending requests to settle on the DevToolsClient"); 62 await toolbox.commands.client.waitForRequestsToSettle(); 63 });