tor-browser

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

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