let windowMediator = Cc["@mozilla.org/appshell/window-mediator;1"] .getService(Ci.nsIWindowMediator); Cu.import("resource://gre/modules/devtools/gcli.jsm", {}); let { CommandUtils } = Cu.import("resource:///modules/devtools/DeveloperToolbar.jsm", {}); let { require } = Cu.import("resource://gre/modules/devtools/Require.jsm", {}); let { Requisition } = require("gcli/cli"); let { Promise: { defer } } = Cu.import("resource://gre/modules/commonjs/sdk/core/promise.js", {}); let gcliExec = (command) => { let chromeWindow = command.chromeWindow || windowMediator.getMostRecentWindow("navigator:browser"); let contentWindow = command.contentWindow || chromeWindow.gBrowser.selectedTab.linkedBrowser.contentWindow; let environment = CommandUtils.createEnvironment(chromeWindow.document, contentWindow.document); let requisition = new Requisition(environment); let output = requisition.exec(command); return output.promise.then(function() { return output.data }, function() { throw Error(output.data) }) } gcliExec({ command: "tilt toggle", args: {} })