From: phasefx Date: Sun, 22 Feb 2009 00:40:47 +0000 (+0000) Subject: backporting from staff-client-experiment: tie in the DOM Inspector X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a22e0751aae05ba22854ec26b2800419de578fca;p=Evergreen.git backporting from staff-client-experiment: tie in the DOM Inspector git-svn-id: svn://svn.open-ils.org/ILS/trunk@12242 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/xul/staff_client/chrome/inspector.jar b/Open-ILS/xul/staff_client/chrome/inspector.jar new file mode 100644 index 0000000000..f5068c1718 Binary files /dev/null and b/Open-ILS/xul/staff_client/chrome/inspector.jar differ diff --git a/Open-ILS/xul/staff_client/components/inspector-cmdline.js b/Open-ILS/xul/staff_client/components/inspector-cmdline.js new file mode 100644 index 0000000000..badf36aa09 --- /dev/null +++ b/Open-ILS/xul/staff_client/components/inspector-cmdline.js @@ -0,0 +1,179 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * 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 DOM Inspector. + * + * The Initial Developer of the Original Code is + * Christopher A. Aillon . + * Portions created by the Initial Developer are Copyright (C) 2003 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Christopher A. Aillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +// NOTE: this file implements both the seamonkey nsICmdLineHandler and +// the toolkit nsICommandLineHandler, using runtime detection. + +const INSPECTOR_CMDLINE_CONTRACTID = "@mozilla.org/commandlinehandler/general-startup;1?type=inspector"; +const INSPECTOR_CMDLINE_CLSID = Components.ID('{38293526-6b13-4d4f-a075-71939435b408}'); +const CATMAN_CONTRACTID = "@mozilla.org/categorymanager;1"; +const nsISupports = Components.interfaces.nsISupports; + +const nsICategoryManager = Components.interfaces.nsICategoryManager; +const nsICmdLineHandler = Components.interfaces.nsICmdLineHandler; +const nsICommandLine = Components.interfaces.nsICommandLine; +const nsICommandLineHandler = Components.interfaces.nsICommandLineHandler; +const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar; +const nsISupportsString = Components.interfaces.nsISupportsString; +const nsIWindowWatcher = Components.interfaces.nsIWindowWatcher; + +function InspectorCmdLineHandler() {} +InspectorCmdLineHandler.prototype = +{ + /* nsISupports */ + QueryInterface : function handler_QI(iid) { + if (iid.equals(nsISupports)) + return this; + + if (nsICmdLineHandler && iid.equals(nsICmdLineHandler)) + return this; + + if (nsICommandLineHandler && iid.equals(nsICommandLineHandler)) + return this; + + throw Components.results.NS_ERROR_NO_INTERFACE; + }, + + /* nsICmdLineHandler */ + commandLineArgument : "-inspector", + prefNameForStartup : "general.startup.inspector", + chromeUrlForTask : "chrome://inspector/content/inspector.xul", + helpText : "Start with the DOM Inspector.", + handlesArgs : true, + defaultArgs : "", + openWindowWithArgs : true, + + /* nsICommandLineHandler */ + handle : function handler_handle(cmdLine) { + var args = Components.classes["@mozilla.org/supports-string;1"] + .createInstance(nsISupportsString); + try { + var uristr = cmdLine.handleFlagWithParam("inspector", false); + if (uristr == null) + return; + try { + args.data = cmdLine.resolveURI(uristr).spec; + } + catch (e) { + return; + } + } + catch (e) { + cmdLine.handleFlag("inspector", true); + } + + var wwatch = Components.classes["@mozilla.org/embedcomp/window-watcher;1"] + .getService(nsIWindowWatcher); + wwatch.openWindow(null, "chrome://inspector/content/", "_blank", + "chrome,dialog=no,all", args); + cmdLine.preventDefault = true; + }, + + helpInfo : " -inspector Open the DOM inspector.\n" +}; + + +var InspectorCmdLineFactory = +{ + createInstance : function(outer, iid) + { + if (outer != null) { + throw Components.results.NS_ERROR_NO_AGGREGATION; + } + + return new InspectorCmdLineHandler().QueryInterface(iid); + } +}; + + +var InspectorCmdLineModule = +{ + registerSelf : function(compMgr, fileSpec, location, type) + { + compMgr = compMgr.QueryInterface(nsIComponentRegistrar); + + compMgr.registerFactoryLocation(INSPECTOR_CMDLINE_CLSID, + "DOM Inspector CommandLine Service", + INSPECTOR_CMDLINE_CONTRACTID, + fileSpec, + location, + type); + + var catman = Components.classes[CATMAN_CONTRACTID].getService(nsICategoryManager); + catman.addCategoryEntry("command-line-argument-handlers", + "inspector command line handler", + INSPECTOR_CMDLINE_CONTRACTID, true, true); + catman.addCategoryEntry("command-line-handler", + "m-inspector", + INSPECTOR_CMDLINE_CONTRACTID, true, true); + }, + + unregisterSelf : function(compMgr, fileSpec, location) + { + compMgr = compMgr.QueryInterface(nsIComponentRegistrar); + + compMgr.unregisterFactoryLocation(INSPECTOR_CMDLINE_CLSID, fileSpec); + catman = Components.classes[CATMAN_CONTRACTID].getService(nsICategoryManager); + catman.deleteCategoryEntry("command-line-argument-handlers", + "inspector command line handler", true); + catman.deleteCategoryEntry("command-line-handler", + "m-inspector", true); + }, + + getClassObject : function(compMgr, cid, iid) + { + if (cid.equals(INSPECTOR_CMDLINE_CLSID)) { + return InspectorCmdLineFactory; + } + + if (!iid.equals(Components.interfaces.nsIFactory)) { + throw Components.results.NS_ERROR_NOT_IMPLEMENTED; + } + + throw Components.results.NS_ERROR_NO_INTERFACE; + }, + + canUnload : function(compMgr) + { + return true; + } +}; + + +function NSGetModule(compMgr, fileSpec) { + return InspectorCmdLineModule; +} diff --git a/Open-ILS/xul/staff_client/defaults/preferences/inspector.js b/Open-ILS/xul/staff_client/defaults/preferences/inspector.js new file mode 100644 index 0000000000..1f0537f4e6 --- /dev/null +++ b/Open-ILS/xul/staff_client/defaults/preferences/inspector.js @@ -0,0 +1,47 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * 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 mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 2001 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Hewitt (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +pref("inspector.blink.border-color", "#CC0000"); +pref("inspector.blink.border-width", 2); +pref("inspector.blink.duration", 1200); +pref("inspector.blink.on", true); +pref("inspector.blink.speed", 100); +pref("inspector.blink.invert", false); +pref("inspector.dom.showAnon", true); +pref("inspector.dom.showWhitespaceNodes", true); +pref("inspector.dom.showAccessibleNodes", false); +pref("inspector.dom.showProcessingInstructions", true);