summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/console-commands.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/webconsole/console-commands.js')
-rw-r--r--devtools/client/webconsole/console-commands.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/devtools/client/webconsole/console-commands.js b/devtools/client/webconsole/console-commands.js
new file mode 100644
index 000000000..0bc9e8edb
--- /dev/null
+++ b/devtools/client/webconsole/console-commands.js
@@ -0,0 +1,103 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft= javascript ts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const l10n = require("gcli/l10n");
+loader.lazyRequireGetter(this, "gDevTools",
+ "devtools/client/framework/devtools", true);
+
+exports.items = [
+ {
+ item: "command",
+ runAt: "client",
+ name: "splitconsole",
+ hidden: true,
+ buttonId: "command-button-splitconsole",
+ buttonClass: "command-button command-button-invertable",
+ tooltipText: l10n.lookup("splitconsoleTooltip"),
+ isRemoteSafe: true,
+ state: {
+ isChecked: function (target) {
+ let toolbox = gDevTools.getToolbox(target);
+ return !!(toolbox && toolbox.splitConsole);
+ },
+ onChange: function (target, changeHandler) {
+ // Register handlers for when a change event should be fired
+ // (which resets the checked state of the button).
+ let toolbox = gDevTools.getToolbox(target);
+ let callback = changeHandler.bind(null, "changed", { target: target });
+
+ if (!toolbox) {
+ return;
+ }
+
+ toolbox.on("split-console", callback);
+ toolbox.once("destroyed", () => {
+ toolbox.off("split-console", callback);
+ });
+ }
+ },
+ exec: function (args, context) {
+ let target = context.environment.target;
+ let toolbox = gDevTools.getToolbox(target);
+
+ if (!toolbox) {
+ return gDevTools.showToolbox(target, "inspector").then((newToolbox) => {
+ newToolbox.toggleSplitConsole();
+ });
+ }
+ return toolbox.toggleSplitConsole();
+ }
+ },
+ {
+ name: "console",
+ description: l10n.lookup("consoleDesc"),
+ manual: l10n.lookup("consoleManual")
+ },
+ {
+ item: "command",
+ runAt: "client",
+ name: "console clear",
+ description: l10n.lookup("consoleclearDesc"),
+ exec: function (args, context) {
+ let toolbox = gDevTools.getToolbox(context.environment.target);
+ if (toolbox == null) {
+ return null;
+ }
+
+ let panel = toolbox.getPanel("webconsole");
+ if (panel == null) {
+ return null;
+ }
+
+ let onceMessagesCleared = panel.hud.jsterm.once("messages-cleared");
+ panel.hud.jsterm.clearOutput();
+ return onceMessagesCleared;
+ }
+ },
+ {
+ item: "command",
+ runAt: "client",
+ name: "console close",
+ description: l10n.lookup("consolecloseDesc"),
+ exec: function (args, context) {
+ // Don't return a value to GCLI
+ return gDevTools.closeToolbox(context.environment.target).then(() => {});
+ }
+ },
+ {
+ item: "command",
+ runAt: "client",
+ name: "console open",
+ description: l10n.lookup("consoleopenDesc"),
+ exec: function (args, context) {
+ const target = context.environment.target;
+ // Don't return a value to GCLI
+ return gDevTools.showToolbox(target, "webconsole").then(() => {});
+ }
+ }
+];