summaryrefslogtreecommitdiffstats
path: root/devtools/client/webide/components/webideCli.js
blob: 0f75da2c4ab974bc79e54fcd165400f9026dd0a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* 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]);