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 }