Mypal/devtools/client/webide/components/webideCli.js

59 lines
1.8 KiB
JavaScript

/* 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 Ci = Components.interfaces;
const Cu = Components.utils;
const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
XPCOMUtils.defineLazyModuleGetter(this, "Services", "resource://gre/modules/Services.jsm");
/**
* Handles --webide command line option.
*/
function webideCli() { }
webideCli.prototype = {
handle: function (cmdLine) {
if (!cmdLine.handleFlag("webide", false)) {
return;
}
// If --webide is used remotely, we don't want to open
// a new tab.
//
// If --webide is used for a new Firefox instance, we
// want to open webide only.
cmdLine.preventDefault = true;
let win = Services.wm.getMostRecentWindow("devtools:webide");
if (win) {
win.focus();
} else {
win = Services.ww.openWindow(null,
"chrome://webide/content/",
"webide",
"chrome,centerscreen,resizable,dialog=no",
null);
}
if (cmdLine.state == Ci.nsICommandLine.STATE_INITIAL_LAUNCH) {
// If this is a new Firefox instance, and because we will only start
// webide, we need to notify "sessionstore-windows-restored" to trigger
// addons registration (for simulators and adb helper).
Services.obs.notifyObservers(null, "sessionstore-windows-restored", "");
}
},
helpInfo: "",
classID: Components.ID("{79b7b44e-de5e-4e4c-b7a2-044003c615d9}"),
QueryInterface: XPCOMUtils.generateQI([Ci.nsICommandLineHandler]),
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([webideCli]);