commit 650464b19ed1be0d99346cb1be7ff4acd826a1e0
parent ef132144d35af55e516af27732a981632f8e6336
Author: Ryan Wolf <rwolf@borderstylo.com>
Date: Tue, 4 May 2010 02:09:22 -0700
name changed
Diffstat:
10 files changed, 92 insertions(+), 73 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1 +1 @@
-naggerstomper.xpi
+updatemuffler.xpi
diff --git a/README.md b/README.md
@@ -1,15 +1,15 @@
-Nagger Stomper
+updatemuffler
============
-Nagger Stomper prevents NoScript and friends from bothering you with "Successful Update" pages by closing tabs that are opened to known nag pages.
+Prevents NoScript and friends from bothering you with "Successful Update" pages by closing tabs that are opened to blacklisted pages.
Installation
============
-### For Use
+### For Normal Use
make
-Then open naggerstomper.xpi in Firefox
+Then open updatemuffler.xpi in Firefox
### For Development
@@ -19,10 +19,29 @@ Navigate to:
...and create a file named:
- naggerstomper@pseudony.ms
+ updatemuffler@pseudony.ms
Inside that file, write the path of this project (making sure it ends in slash).
+Adding to the Blacklist
+=======================
+
+Go to about:config
+
+Right click -> New -> String
+
+Pick
+
+ extensions.updatemuffler.blacklist.<name of page>
+
+for the name, and
+
+ ^http:\/\/regex-escaped-string-matching-annoying-page
+
+for the value.
+
+See extensions.updatemuffler.blacklist.noscript for a working example.
+
Thanks
======
Thanks to [retiman](http://github.com/retiman) for a great firefox extension skeleton, and for complaining loudly enough about NoScript to inspire this extension.
diff --git a/chrome.manifest b/chrome.manifest
@@ -1,3 +1,3 @@
-content naggerstomper chrome/content/
-content naggerstomper chrome/content/ contentaccessible=yes
-overlay chrome://browser/content/browser.xul chrome://naggerstomper/content/overlay.xul
+content updatemuffler chrome/content/
+content updatemuffler chrome/content/ contentaccessible=yes
+overlay chrome://browser/content/browser.xul chrome://updatemuffler/content/overlay.xul
diff --git a/chrome/content/naggerstomper.js b/chrome/content/naggerstomper.js
@@ -1,50 +0,0 @@
-new function () {
- // TODO: nice UI for adding patterns
-
- var getNaggers = function () {
- // Get the "extensions.myext." branch
- var prefService = Components.classes["@mozilla.org/preferences-service;1"].
- getService(Components.interfaces.nsIPrefService);
- var prefBranch = prefService.getBranch("extensions.naggerstomper.naggers.");
- var keys = prefBranch.getChildList("", {});
- return keys.map(function (key) {
- return new RegExp(prefBranch.getCharPref(key));
- });
- };
-
- var isNag = function (url) {
- return getNaggers().some(function (regex) { return url.match(regex); });
- };
-
- var closeTabIfNag = function (tab) {
- var browser = gBrowser.getBrowserForTab(tab);
- browser.addEventListener(
- "pageshow",
- function (event) {
- 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
- );
- };
-
- window.addEventListener(
- "load",
- function () {
- gBrowser.tabContainer.addEventListener(
- "TabOpen",
- function (event) {
- closeTabIfNag(event.target);
- },
- false
- );
- },
- false
- );
-}
diff --git a/chrome/content/overlay.xul b/chrome/content/overlay.xul
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<overlay id="naggerstomper"
+<overlay id="updatemuffler"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/x-javascript" src="naggerstomper.js" />
+ <script type="application/x-javascript" src="updatemuffler.js" />
<!-- <menupopup id="menu_ToolsPopup">
- <menuitem label="Nagger Stomper" insertbefore="javascriptConsole"
- oncommand="alert('STOMP!');"/>
+ <menuitem id="updatemuffler-menuitem" label="Muffle This Page"
+ insertbefore="javascriptConsole" oncommand="alert('TODO');"/>
</menupopup> -->
</overlay>
diff --git a/chrome/content/updatemuffler.js b/chrome/content/updatemuffler.js
@@ -0,0 +1,50 @@
+new function () {
+ // TODO: #updatemuffler-menuitem command handler for updating blacklist
+
+ var getBlacklist = function () {
+ var prefService = Components.classes["@mozilla.org/preferences-service;1"].
+ getService(Components.interfaces.nsIPrefService);
+ var prefBranch = prefService.
+ getBranch("extensions.updatemuffler.blacklist.");
+ var keys = prefBranch.getChildList("", {});
+ return keys.map(function (key) {
+ return new RegExp(prefBranch.getCharPref(key));
+ });
+ };
+
+ var isBlacklisted = function (url) {
+ return getBlacklist().some(function (regex) { return url.match(regex); });
+ };
+
+ var closeTabIfBlacklisted = function (tab) {
+ var browser = gBrowser.getBrowserForTab(tab);
+ browser.addEventListener(
+ "pageshow",
+ function (event) {
+ var url = event.originalTarget.defaultView.location.href;
+ if (url === "about:blank") {
+ return;
+ }
+ if (isBlacklisted(url)) {
+ gBrowser.removeTab(tab);
+ }
+ browser.removeEventListener("pageshow", arguments.callee, false);
+ },
+ false
+ );
+ };
+
+ window.addEventListener(
+ "load",
+ function () {
+ gBrowser.tabContainer.addEventListener(
+ "TabOpen",
+ function (event) {
+ closeTabIfBlacklisted(event.target);
+ },
+ false
+ );
+ },
+ false
+ );
+}
diff --git a/defaults/preferences/blacklist.js b/defaults/preferences/blacklist.js
@@ -0,0 +1,4 @@
+pref(
+ "extensions.updatemuffler.blacklist.noscript",
+ "^http:\/\/noscript.net\/\?ver=.*&prev=.*"
+);
diff --git a/defaults/preferences/naggerstomper.js b/defaults/preferences/naggerstomper.js
@@ -1,4 +0,0 @@
-pref(
- "extensions.naggerstomper.naggers.noscript",
- "^http:\/\/noscript.net\/\?ver=.*&prev=.*"
-);
diff --git a/install.rdf b/install.rdf
@@ -2,8 +2,8 @@
<RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Description about="urn:mozilla:install-manifest">
- <em:id>naggerstomper@pseudony.ms</em:id>
- <em:name>Nagger Stomper</em:name>
+ <em:id>updatemuffler@pseudony.ms</em:id>
+ <em:name>updatemuffler</em:name>
<em:version>0.0.2</em:version>
<em:type>2</em:type>
<em:targetApplication>
@@ -14,7 +14,7 @@
</Description>
</em:targetApplication>
<em:creator>Ryan Wolf</em:creator>
- <em:description>Nagger Stomper prevents NoScript and friends from bothering you with "Successful Update" pages.</em:description>
- <em:homepageURL>http://hampsterdance.com/</em:homepageURL>
+ <em:description>Prevent NoScript and friends from bothering you with "Successful Update" pages.</em:description>
+ <em:homepageURL>http://github.com/thebigbad/updatemuffler</em:homepageURL>
</Description>
</RDF>
diff --git a/makefile b/makefile
@@ -1,5 +1,5 @@
package :
- zip naggerstomper.xpi chrome/ defaults/ chrome.manifest install.rdf
+ zip updatemuffler.xpi chrome/ defaults/ chrome.manifest install.rdf
clean :
- rm naggerstomper.xpi
+ rm updatemuffler.xpi