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 / fil2B3FEC0E4EFD97841E426FC022386A40 < prev    next >
Text File  |  2010-07-12  |  2KB  |  70 lines

  1. Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
  2.  
  3. const ProtocolScheme = "bar";
  4.  
  5. const Cc = Components.classes;
  6. const Ci = Components.interfaces;
  7.  
  8. const IOS = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
  9.  
  10. function YaResProtocolHandler() {
  11.   Components.utils.import("resource://yasearch/bar.protocol.jsm", this);
  12.   this.ProtocolHandler.scheme = ProtocolScheme;
  13.   
  14.   this._scheme = ProtocolScheme;
  15. }
  16.  
  17. YaResProtocolHandler.prototype = {
  18.   _scheme: "",
  19.   
  20.   get scheme() {
  21.     return this._scheme;
  22.   },
  23.   
  24.   get protocolFlags() {
  25.     return Ci.nsIProtocolHandler.URI_DANGEROUS_TO_LOAD;
  26.   },
  27.   
  28.   get defaultPort() {
  29.     return -1;
  30.   },
  31.   
  32.   allowPort: function YRPH_allowPort(port, scheme) {
  33.     return false;
  34.   },
  35.   
  36.   newURI: function YRPH_newURI(aSpec, aOriginalCharset, baseURI) {
  37.     let uri = this.ProtocolHandler.newURI(aSpec, aOriginalCharset, baseURI);
  38.     
  39.     if (!uri)
  40.       throw Components.results.NS_ERROR_MALFORMED_URI;
  41.     
  42.     return uri;
  43.   },
  44.   
  45.   newChannel: function YRPH_newChannel(aURI) {
  46.     let channel = this.ProtocolHandler.newChannel(aURI);
  47.     
  48.     if (!channel) {
  49.       channel = IOS.newChannel("data:,", null, null);
  50.     }
  51.     
  52.     channel.originalURI = aURI;
  53.     
  54.     return channel;
  55.   },
  56.   
  57.   classDescription: "Yandex.Bar protocol handler",
  58.   classID: Components.ID("69a91d28-4b81-11de-97de-eb99b362b158"),
  59.   contractID: ("@mozilla.org/network/protocol;1?name=" + ProtocolScheme),
  60.   QueryInterface: XPCOMUtils.generateQI([Ci.nsIProtocolHandler]),
  61.   
  62.   _xpcom_categories: [{
  63.       category: "app-startup",
  64.       service: true
  65.   }]
  66. }
  67.  
  68. function NSGetModule(aCompMgr, aFileSpec) {
  69.   return XPCOMUtils.generateModule([YaResProtocolHandler]);
  70. }