/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger * * The Initial Developer of the Original Code is * Netscape Communications Corporation * Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License (the "GPL"), in which case the * provisions of the GPL are applicable instead of those above. * If you wish to allow use of your version of this file only * under the terms of the GPL and not to allow others to use your * version of this file under the MPL, indicate your decision by * deleting the provisions above and replace them with the notice * and other provisions required by the GPL. If you do not delete * the provisions above, a recipient may use your version of this * file under either the MPL or the GPL. * * Contributor(s): * Robert Ginda, , original author * */ /* components defined in this file */ const CLINE_SERVICE_CTRID = "@mozilla.org/commandlinehandler/general-startup;1?type=venkman"; const CATMAN_CTRID = "@mozilla.org/categorymanager;1"; const CLINE_SERVICE_CID = Components.ID("{18269616-1dd2-11b2-afa8-b612439bda27}"); const nsICmdLineHandler = Components.interfaces.nsICmdLineHandler; const nsICategoryManager = Components.interfaces.nsICategoryManager; const nsISupports = Components.interfaces.nsISupports; /* Command Line handler service */ function CLineService() {} CLineService.prototype.commandLineArgument = "-venkman"; CLineService.prototype.prefNameForStartup = "general.startup.venkman"; CLineService.prototype.chromeUrlForTask="chrome://venkman/content"; CLineService.prototype.helpText = "Start with JavaScript debugger"; CLineService.prototype.handlesArgs=false; CLineService.prototype.defaultArgs =""; CLineService.prototype.openWindowWithArgs=false; /* factory for command line handler service (CLineService) */ var CLineFactory = new Object(); CLineFactory.createInstance = function (outer, iid) { if (outer != null) throw Components.results.NS_ERROR_NO_AGGREGATION; if (!iid.equals(nsICmdLineHandler) && !iid.equals(nsISupports)) throw Components.results.NS_ERROR_INVALID_ARG; return new CLineService(); } var Module = new Object(); Module.registerSelf = function (compMgr, fileSpec, location, type) { debug("*** Registering -venkman handler.\n"); compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar); compMgr.registerFactoryLocation(CLINE_SERVICE_CID, "Venkman CommandLine Service", CLINE_SERVICE_CTRID, fileSpec, location, type); catman = Components.classes[CATMAN_CTRID].getService(nsICategoryManager); catman.addCategoryEntry("command-line-argument-handlers", "venkman command line handler", CLINE_SERVICE_CTRID, true, true); } Module.unregisterSelf = function(compMgr, fileSpec, location) { compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar); compMgr.unregisterFactoryLocation(CLINE_SERVICE_CID, fileSpec); catman = Components.classes[CATMAN_CTRID].getService(nsICategoryManager); catman.deleteCategoryEntry("command-line-argument-handlers", CLINE_SERVICE_CTRID, true); } Module.getClassObject = function (compMgr, cid, iid) { if (cid.equals(CLINE_SERVICE_CID)) return CLineFactory; if (cid.equals(IRCCNT_HANDLER_CID)) return IRCContentHandlerFactory; if (cid.equals(IRCPROT_HANDLER_CID)) return IRCProtocolHandlerFactory; if (!iid.equals(Components.interfaces.nsIFactory)) throw Components.results.NS_ERROR_NOT_IMPLEMENTED; throw Components.results.NS_ERROR_NO_INTERFACE; } Module.canUnload = function(compMgr) { return true; } /* entrypoint */ function NSGetModule(compMgr, fileSpec) { return Module; } .