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

commit 73401719b0d3952e7428e52109ed33514e523fbc
parent 8f984e130f709b2ff776b9251e792dbafae33b4f
Author: Ryan Wolf <rwolf@borderstylo.com>
Date:   Sun,  2 May 2010 23:43:56 -0700

works great except for if a user means to visit page

Diffstat:
Mchrome/content/naggerstomper.js | 58+++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 37 insertions(+), 21 deletions(-)

diff --git a/chrome/content/naggerstomper.js b/chrome/content/naggerstomper.js @@ -1,26 +1,42 @@ -var noscriptnag = /^http:\/\/noscript.net\/\?ver=.*&prev=.*/; +new function () { + // TODO: nice UI for adding patterns + var nagRegexes = [ + /^http:\/\/noscript.net\/\?ver=.*&prev=.*/, + ]; -window.addEventListener( - "load", - function () { - gBrowser.tabContainer.addEventListener( - "TabOpen", + var isNag = function (url) { + return nagRegexes.some(function (reg) { return url.match(reg); }); + }; + + var closeTabIfNag = function (tab) { + var browser = gBrowser.getBrowserForTab(tab); + browser.addEventListener( + "pageshow", function (event) { - var tab = event.target; - var browser = gBrowser.getBrowserForTab(tab); - browser.addEventListener( - "pageshow", - function (event) { - var window = event.originalTarget.defaultView; - if (window.location.href.match(noscriptnag)) { - gBrowser.removeTab(tab); - } - }, - false - ); + var url = event.originalTarget.defaultView.location.href; + if (url === "about:blank") { + return; + } + if (isNag(url)) { + gBrowser.removeTab(tab); + } + browser.removeEventListener("pageshow", arguments.callee, false); }, false ); - }, - false -); + }; + + window.addEventListener( + "load", + function () { + gBrowser.tabContainer.addEventListener( + "TabOpen", + function (event) { + closeTabIfNag(event.target); + }, + false + ); + }, + false + ); +}