dafi
2/9/2011 - 6:05 PM

Firefox mini blocker

Firefox mini blocker

var miniUrlBlocker = {
   // Lista delle regular expression contenenti le URL da bloccare
   blackList : [/http:\/\/www\.badurl\.com/],
   
   observe:function(subject, topic, data) {
     if (topic != "http-on-modify-request") {
       return;
     }
     try {
       var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
       var URI = httpChannel.URI.spec;
 
       for (var i in this.blackList) {
         var re = this.blackList[i];
 
         if (re.test(URI)) {
           var isMainDoc = httpChannel.loadFlags
             & httpChannel.LOAD_INITIAL_DOCUMENT_URI;
           httpChannel.cancel(isMainDoc
               ? Components.results.NS_ERROR_CONNECTION_REFUSED
               : Components.results.NS_ERROR_ABORT);
           break;
         }
       }
     } catch(err) {
     }
   }
 }
 
 Components.classes["@mozilla.org/observer-service;1"]
   .getService(Components.interfaces.nsIObserverService)
   .addObserver(miniUrlBlocker, "http-on-modify-request", false);