summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/framework/test/metrics/browser_metrics_webconsole.js')
-rw-r--r--devtools/client/framework/test/metrics/browser_metrics_webconsole.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/devtools/client/framework/test/metrics/browser_metrics_webconsole.js b/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
new file mode 100644
index 0000000000..94e24291c8
--- /dev/null
+++ b/devtools/client/framework/test/metrics/browser_metrics_webconsole.js
@@ -0,0 +1,56 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * This test records the number of modules loaded by DevTools, as well as the total count
+ * of characters in those modules, when opening the webconsole. These metrics are
+ * retrieved by perfherder via logs.
+ */
+
+const TEST_URL =
+ "data:text/html;charset=UTF-8,<div>Webconsole modules load test</div>";
+
+add_task(async function () {
+ const toolbox = await openNewTabAndToolbox(TEST_URL, "webconsole");
+ 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,
+ toolboxBrowserLoader.loader,
+ webconsoleLoader.loader,
+ ];
+
+ const allowedDupes = [
+ "@loader/unload.js",
+ "@loader/options.js",
+ "resource://devtools/client/webconsole/constants.js",
+ "resource://devtools/client/webconsole/utils.js",
+ "resource://devtools/client/webconsole/utils/messages.js",
+ "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/components/menu/MenuButton.js",
+ "resource://devtools/client/shared/components/menu/MenuItem.js",
+ "resource://devtools/client/shared/components/menu/MenuList.js",
+ "resource://devtools/client/shared/vendor/fluent-react.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",
+ "resource://devtools/client/shared/vendor/redux.js",
+ "resource://devtools/client/shared/redux/middleware/thunk.js",
+ ];
+ runDuplicatedModulesTest(loaders, allowedDupes);
+
+ runMetricsTest({
+ filterString: "devtools/client/webconsole",
+ loaders,
+ panelName: "webconsole",
+ });
+});