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

  1. Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
  2.  
  3. const Cc = Components.classes;
  4. const Ci = Components.interfaces;
  5. const nsIAboutModule = Ci.nsIAboutModule;
  6. const nsIIOService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
  7.  
  8. function FTabAboutHandler() {
  9.   this.yaFTab = Cc["@yandex.ru/yasearch;1"]
  10.                        .getService(Ci.nsIYaSearch)
  11.                        .wrappedJSObject
  12.                        .yaFTab;
  13.   
  14.   this.urlRE = new RegExp("^about:yandex-tabs\\?sec=" + this.yaFTab.secURLParam + "&image=(.*)$");
  15. }
  16.  
  17. FTabAboutHandler.prototype = {
  18.   _getURLString: function(aURL) {
  19.     let [, url] = (aURL || "").match(this.urlRE) || [];
  20.     return (url && /^(https?|file)/.test(url)) ? url : null;
  21.   },
  22.   
  23.   _getURLData: function(aURL) {
  24.     let url = this._getURLString(aURL);
  25.     let data = url ? this.yaFTab.getImageForURL(url) : null;
  26.     return data || null;
  27.   },
  28.   
  29.   newChannel: function(aURI) {
  30.     let data = this._getURLData(aURI.spec) || "data:image/png,base64";
  31.     
  32.     let channel = nsIIOService.newChannel(data, null, null);
  33.     channel.originalURI = aURI;
  34.     
  35.     return channel;
  36.   },
  37.   
  38.   getURIFlags: function(aURI) {
  39.     let spec = aURI.spec;
  40.     
  41.     if (this.urlRE.test(spec) || spec === "about:yandex-tabs?sec={$secURLParam}&image={$pg/@url}") {//xslt
  42.       return nsIAboutModule.URI_SAFE_FOR_UNTRUSTED_CONTENT;
  43.     }
  44.     
  45.     return 0;
  46.   },
  47.   
  48.   classDescription: "About Yandex Tabs",
  49.   classID: Components.ID("d18f02ba-3d4c-11de-a33b-0785b984f2d8"),
  50.   contractID: "@mozilla.org/network/protocol/about;1?what=yandex-tabs",
  51.   QueryInterface: XPCOMUtils.generateQI([nsIAboutModule]),
  52.   
  53.   _xpcom_categories: [
  54.     { category: "app-startup", service: true }
  55.   ]
  56. }
  57.  
  58. function NSGetModule(aCompMgr, aFileSpec) {
  59.   return XPCOMUtils.generateModule([FTabAboutHandler]);
  60. }