Script Summary: Allows one click removal of useless addons at addons.mozilla.org
DescriptionAddons.MOzilla.org USeless Extensions Remover (AMOUSER) provides new and much needed functionality to Mozilla's official addons site. Inspired by JohnM's script the Addons Crap Remover, AMOUSER adds buttons to addon listings on AMO that help you to never have to see useless addons again. AMOUSER is compatible with the new layout on AMO, and in this new version, provides a styled button to each addon listed while you browse AMO. By pressing one of these buttons, you can remove any addon from Mozilla pages that you don't have a use for - allowing you to sift through fewer addons each time you're on AMO. These buttons also are based off of AMO's current theme and blend well with the remainder of the page.
This is a major update to the original version of this script that I posted some months ago. Most immediately noticeable is its significant face lift. I have one kink to work out with its current appearance, the alignment of the right side of the "Remove Addon" buttons and the install buttons, but otherwise I am very pleased with how its turned out. All images used in the script are encoded in base 64; so you won't have to worry about it accessing external webpages. Also, I've added support for regular expression filters for addon titles, authors, and descriptions, allowing for some much needed general control over what scripts are removed from the page.
On the technical side of the aisle, I have attempted to streamline the initial functions within the code. I replaced the core search functionality in the script, which relied on a function defined in the this script called "getElementsByClassName," with an XPath query. It might just be my system, but this seems to have a nontrivial effect on the speed of the script. Even when browsing 100 addons at a time, there is no noticeable delay between when the page loads and when AMOUSER finishes doing its job. I have also rewritten the majority of JohnM's original functions in favor of ones that are more modular, execute quicker (at very least) within the new AMO, and provide more control over a given page's elements. For a full list of updates, please see the "Updates" section below.
Screenshots:AMO Before Enabling AMOUSER:
AMO After Enabling AMOUSER with/without Removed Extensions Listed:
FeedbackI can also be reached by email at mathemajor+AMOUSER at "gee male" dot com for further comments, suggestions, etc.
Comments are welcomed and appreciated! I will try to update the script in a timely manner if someone points out a bug. Also, I use a widescreen monitor, so if any problems occur on a smaller screen please let me know. Enjoy!
- Primary functionality is now active again.
- Created image files to potentially replace current "Red X" and added them in base 64 to the code
- Replaced the span containing the removed extensions at the top of the page (which really didn't go well with the remainder of the page) with a div.
- Styled said div to blend with the remainder of the page
- Working on added functionality for this container
- 05/12/08 - 05/20/08: TONS of changes
- Converted some variable arrays into XPath results to help speed up script
- Created "Remove Addon" buttons out of span elements mimicking the install buttons on AMO
- Styled new buttons by imitating AMO .css links
- Replaced the "insertStyle" function (that inserted style rules on an element by element basis) with an "addGlobalStyle" made with some assistance from "Dive into Greasemonkey"
- Changed wording of the span at the top of each page
- Fixed a bug where clicking to minimize this span and subsequently expanding the container appended a new "Remove Addon" button to each addon listing
- Fixed a bug where removing an experimental addon from a listing did not remove its parent li element from the page until reload
- Minor edits to most primary functions
- Reordered the code (variables --> function declarations --> statements) for readability
- Continued working on some new features to come
- Split the "Remove Addon" button background variable into two base64 images - one for when the buttons is being hovered over, selected, etc and one for when it is not
- Worked on two "addEventListener" function calls in deCrapify to changed the background of the "Remove Addon" button on mouseover, difficultly swapping one image for another with css without bothering the elements within the first span
- Realized the two variable approach resulted in a larger file and more memory allocation when active to operate and remembered that the style change could easily be done with css on its own
- Added this css accordingly
- Added more suggested filters in comments within the BAD_* arrays
- Added support for regular expressions in title, author, and description searching
- Rewrote the hasBadTitle function
- Created hasBadAuthor and hasBadDescription functions
- Changed the isCrap function to be a simple validation calling the hasBad* functions
- Added some examples of regular expressions to the BAD_*_REGEX arrays
- Fixed a bug where clicking any part of the "Remove Addon" button outside the strong element contained within it led to the entire page being cleared until refresh.
- Changed the border image of the new addons button.
- 07/16/08 (Minor Update): Added "https://addons.mozilla.org/*/search?*" as another @include for AMOUSER, since the script seems to run fine on search pages. Let me know if you have problems with it. Also, I'm planning on releasing a major update of this script by the end of this month or early next month that will add a lot of new functionality to the script and improve the old code.
- 08/03/08 (Minor Update): Changed the @excludes of the script so that AMOUSER does not run on theme pages in browse mode. Since I don't typically change themes in my Mozilla apps, I hadn't noticed that theme listings have a different structure than extension listings until now. It should be an easy fix, and I'll update the script as soon as possible to work with these.