home *** CD-ROM | disk | FTP | other *** search
/ Freelog 112 / FreelogNo112-NovembreDecembre2012.iso / Programmation / RJ_TextEd / RJ_TextEd_Portable.exe / components / nsHandlerService.js < prev   
Text File  |  2010-01-01  |  5KB  |  144 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is the Mozilla browser.
  15.  *
  16.  * The Initial Developer of the Original Code is Mozilla.
  17.  * Portions created by the Initial Developer are Copyright (C) 2007
  18.  * the Initial Developer. All Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *   Myk Melez <myk@mozilla.org>
  22.  *   Dan Mosedale <dmose@mozilla.org>
  23.  *   Florian Queze <florian@queze.net>
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  27.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38.  
  39. const Ci = Components.interfaces;
  40. const Cc = Components.classes;
  41. const Cu = Components.utils;
  42. const Cr = Components.results;
  43.  
  44.  
  45. const CLASS_MIMEINFO        = "mimetype";
  46. const CLASS_PROTOCOLINFO    = "scheme";
  47.  
  48.  
  49. // namespace prefix
  50. const NC_NS                 = "http://home.netscape.com/NC-rdf#";
  51.  
  52. // the most recent default handlers that have been injected.  Note that
  53. // this is used to construct an RDF resource, which needs to have NC_NS
  54. // prepended, since that hasn't been done yet
  55. const DEFAULT_HANDLERS_VERSION = "defaultHandlersVersion";
  56.  
  57. // type list properties
  58.  
  59. const NC_MIME_TYPES         = NC_NS + "MIME-types";
  60. const NC_PROTOCOL_SCHEMES   = NC_NS + "Protocol-Schemes";
  61.  
  62. // content type ("type") properties
  63.  
  64. // nsIHandlerInfo::type
  65. const NC_VALUE              = NC_NS + "value";
  66. const NC_DESCRIPTION        = NC_NS + "description";
  67.  
  68. // additional extensions
  69. const NC_FILE_EXTENSIONS    = NC_NS + "fileExtensions";
  70.  
  71. // references nsIHandlerInfo record
  72. const NC_HANDLER_INFO       = NC_NS + "handlerProp";
  73.  
  74. // handler info ("info") properties
  75.  
  76. // nsIHandlerInfo::preferredAction
  77. const NC_SAVE_TO_DISK       = NC_NS + "saveToDisk";
  78. const NC_HANDLE_INTERNALLY  = NC_NS + "handleInternal";
  79. const NC_USE_SYSTEM_DEFAULT = NC_NS + "useSystemDefault";
  80.  
  81. // nsIHandlerInfo::alwaysAskBeforeHandling
  82. const NC_ALWAYS_ASK         = NC_NS + "alwaysAsk";
  83.  
  84. // references nsIHandlerApp records
  85. const NC_PREFERRED_APP      = NC_NS + "externalApplication";
  86. const NC_POSSIBLE_APP       = NC_NS + "possibleApplication";
  87.  
  88. // handler app ("handler") properties
  89.  
  90. // nsIHandlerApp::name
  91. const NC_PRETTY_NAME        = NC_NS + "prettyName";
  92.  
  93. // nsILocalHandlerApp::executable
  94. const NC_PATH               = NC_NS + "path";
  95.  
  96. // nsIWebHandlerApp::uriTemplate
  97. const NC_URI_TEMPLATE       = NC_NS + "uriTemplate";
  98.  
  99. // nsIDBusHandlerApp::service
  100. const NC_SERVICE            = NC_NS + "service";
  101.  
  102. // nsIDBusHandlerApp::method
  103. const NC_METHOD             = NC_NS + "method";
  104.  
  105. // nsIDBusHandlerApp::objectPath
  106. const NC_OBJPATH            = NC_NS + "objectPath";
  107.  
  108. // nsIDBusHandlerApp::dbusInterface
  109. const NC_INTERFACE            = NC_NS + "dBusInterface";
  110.  
  111. Cu.import("resource://gre/modules/XPCOMUtils.jsm");
  112.  
  113.  
  114. function HandlerService() {
  115.   this._init();
  116. }
  117.  
  118. const HandlerServiceFactory = {
  119.   _instance: null,
  120.   createInstance: function (outer, iid) {
  121.     if (this._instance)
  122.       return this._instance;
  123.  
  124.     let processType = Cc["@mozilla.org/xre/runtime;1"].
  125.       getService(Ci.nsIXULRuntime).processType;
  126.     if (processType != Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT)
  127.       return Cr.NS_ERROR_NOT_IMPLEMENTED;
  128.  
  129.     return (this._instance = new HandlerService());
  130.   }
  131. };
  132.  
  133. HandlerService.prototype = {
  134.   //**************************************************************************//
  135.   // XPCOM Plumbing
  136.  
  137.   classID:          Components.ID("{32314cc8-22f7-4f7f-a645-1a45453ba6a6}"),
  138.   QueryInterface:   XPCOMUtils.generateQI([Ci.nsIHandlerService]),
  139.   _xpcom_factory: HandlerServiceFactory,
  140.  
  141.   //**************************************************************************//
  142.   // Initialization & Destruction
  143.   
  144.   _init: function HS_