home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / AIMP2 / aimp_2.61.583.exe / $TEMP / YandexPackSetup.msi / filE8AA8329A56365DB876FC17E3ACD2C0B < prev    next >
Text File  |  2010-07-12  |  1KB  |  50 lines

  1. let EXPORTED_SYMBOLS = ["ProtocolHandler"];
  2.  
  3. const Cc = Components.classes;
  4. const Ci = Components.interfaces;
  5.  
  6. const IOS = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
  7.  
  8. var gHandlers = [];
  9.  
  10. var ProtocolHandler = {
  11.   _scheme: "",
  12.   
  13.   get scheme() {
  14.     return this._scheme;
  15.   },
  16.   
  17.   set scheme(val) {
  18.     this._scheme = val;
  19.   },
  20.   
  21.   addHandler: function(aHandler) {
  22.     if (gHandlers.some(function(handler) { return aHandler === handler; }))
  23.       return;
  24.     
  25.     gHandlers.push(aHandler);
  26.   },
  27.   
  28.   removeHandler: function(aHandler) {
  29.     gHandlers = gHandlers.filter(function(handler) { return aHandler !== handler; });
  30.   },
  31.   
  32.   newURI: function(aSpec, aOriginalCharset, aBaseURI) {
  33.     let uri = null;
  34.     
  35.     let spec = aSpec.replace(this.scheme + ":", "");
  36.     
  37.     gHandlers.some(function(handler) {
  38.       return (null !== (uri = handler.newURI(spec, aOriginalCharset, aBaseURI)));
  39.     });
  40.     
  41.     if (uri && typeof uri == "string")
  42.       uri = IOS.newURI(uri, aOriginalCharset, aBaseURI);
  43.     
  44.     return uri;
  45.   },
  46.   
  47.   newChannel: function(aURI) {
  48.     return null;
  49.   }
  50. };