updatemuffler

updatemuffler prevents NoScript and friends from bothering you with 'Successful Update' pages.
git clone https://wehaveforgeathome.hates.computer/updatemuffler.git
Log | Files | Refs | LICENSE

updatemuffler.js (1377B)


      1 new function () {
      2   // TODO: #updatemuffler-menuitem command handler for updating blacklist
      3 
      4   var getBlacklist = function () {
      5     var prefService = Components.classes["@mozilla.org/preferences-service;1"].
      6         getService(Components.interfaces.nsIPrefService);
      7     var prefBranch = prefService.
      8         getBranch("extensions.updatemuffler.blacklist.");
      9     var keys = prefBranch.getChildList("", {});
     10     return keys.map(function (key) {
     11       return new RegExp(prefBranch.getCharPref(key));
     12     });
     13   };
     14 
     15   var isBlacklisted = function (url) {
     16     return getBlacklist().some(function (regex) { return url.match(regex); });
     17   };
     18 
     19   var closeTabIfBlacklisted = function (tab) {
     20     var browser = gBrowser.getBrowserForTab(tab);
     21     browser.addEventListener(
     22       "pageshow",
     23       function (event) {
     24         var url = event.originalTarget.defaultView.location.href;
     25         if (url === "about:blank") {
     26           return;
     27         }
     28         if (isBlacklisted(url)) {
     29           gBrowser.removeTab(tab);
     30         }
     31         browser.removeEventListener("pageshow", arguments.callee, false);
     32       },
     33       false
     34     );
     35   };
     36 
     37   window.addEventListener(
     38     "load",
     39     function () {
     40       gBrowser.tabContainer.addEventListener(
     41         "TabOpen",
     42         function (event) {
     43           closeTabIfBlacklisted(event.target);
     44         },
     45         false
     46       );
     47     },
     48     false
     49   );
     50 }