Userscripts.org
   HOME

TheInfoList



OR:

Greasemonkey is a
userscript manager {{Unreferenced, date=May 2019, bot=noref (GreenC bot) A userscript manager is a type of browser extension and augmented browsing technology that provides a user interface to manage userscripts. The main purpose of a userscript manager is to execute ...
made available as a
Mozilla Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and a ...
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (predicate logic), the set of tuples of values that satisfy the predicate * E ...
. It enables users to install
scripts Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
that make on-the-fly changes to web page content after or before the page is loaded in the browser (also known as
augmented browsing A browser extension is a small software module for customizing a web browser. Browsers typically allow a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web ...
). The changes made to the web pages are executed every time the page is viewed, making them effectively permanent for the user running the script. Greasemonkey can be used for customizing page appearance, adding new functions to web pages (for example, embedding price comparisons within shopping sites), fixing rendering bugs, combining data from multiple web pages, and numerous other purposes.


History

The Greasemonkey project began 28 November 2004, written by Aaron Boodman. Boodman was inspired to write Greasemonkey after looking at a Firefox extension designed to clean up the interface of AllMusic, written by
Adrian Holovaty Adrian is a form of the Latin given name Adrianus or Hadrianus. Its ultimate origin is most likely via the former river Adria from the Venetic and Illyrian word ''adur'', meaning "sea" or "water". The Adria was until the 8th century BC the main ...
, who later became a userscript developer. By May 2005, there were approximately 60 general and 115 site-specific userscripts distributed for Greasemonkey. In July 2005, serious vulnerabilities were found in Greasemonkey by Mark Pilgrim, and fixed in the 3.5 version of Greasemonkey. During this time, a Greasemonkey compiler was also developed for converting a userscript into a standalone Firefox extension. Greasemonkey was initially met with complaints by publishers for its ability to block ads. However, this criticism shifted its focus to other addons starting with the 2006 release of Adblock Plus.


Userscripts.org

To accommodate the growing number of scripts, userscripts.org was founded by Britt Selvitelle and other members of the Greasemonkey community in late 2005. Userscripts.org was open sourced in 2007 but the site later moved away from this code base. As the main script repository listed on Greasemonkey's official site, userscripts.org accumulated thousands of scripts per year. In 2010, the last known admin Jesse Andrews posted that the site was in maintenance mode due to lack of time and asked for a new maintainer to volunteer. Nevertheless, he remained the sole admin of the site until a discussion about install counts began on 1 April 2013. Prior to this, many of the "most popular scripts" as listed by the site had nominal install counts of zero. Over the following year spam scripts became more common, server downtime increased and the install count bug remained. With no further communication by Andrews, userscript writers described the site as neglected and the official Greasemonkey site removed its front page link. In response, script writers and other developers began working on the fork "openuserjs.org", and later greasyfork.org, as an immediate replacement. In May 2014, userscripts.org became inaccessible on port 80, prompting users to access it on port 8080 instead. In August 2014, the site was shut down completely. Most of its scripts were backed up to the static mirror userscripts-mirror.org where they can now be found.


Technical details

Greasemonkey user scripts are written in JavaScript and manipulate the contents of a web page using the Document Object Model interface. Scripts are generally written to be either page-specific or domain-specific (applying to all pages within a domain) but may also be tagged to apply to all domains for global browser enhancements. Users of Greasemonkey can write or download scripts and save them to their own personal library. When users visit a website matching a script in their personal script library, Greasemonkey invokes the relevant scripts. Greasemonkey scripts can modify a webpage in any way that JavaScript allows, with certain Greasemonkey security restrictions. Scripts can also access other web pages and web services via a non-domain-restricted XMLHTTP request, allowing external content to be merged with the original page content. Scripts are named ''somename''.user.js, and Greasemonkey offers to install any such script when a URL ending in that suffix is requested. Greasemonkey scripts contain
metadata Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
which specifies the name of the script, a description, resources required by the script, a namespace URL used to differentiate identically named scripts, and URL patterns for which the script is intended to be invoked or not. Writing a Greasemonkey script is similar to writing JavaScript for a web page, with some additional allowances such as cross-site
XMLHttpRequest XMLHttpRequest (XHR) is an API in the form of an object whose methods transfer data between a web browser and a web server. The object is provided by the browser's JavaScript environment. Particularly, retrieval of data from XHR for the purpose o ...
s. Compared to writing a full-fledged Firefox extension, user scripting is a very modest step up in complexity from basic web programming. However, Greasemonkey scripts are limited due to security restrictions imposed by Mozilla's XPCNativeWrappers For example, Greasemonkey scripts do not have access to many of Firefox's components, such as the download manager, I/O processes or its main toolbars. Additionally, Greasemonkey scripts run per instance of a matching webpage. Because of this, managing lists of items globally is difficult. However, script writers have been using cookies and Greasemonkey even offers APIs such as GM_getValue and GM_setValue to overcome this.


User scripts

File hosting servers for Greasemonkey require that the
URL A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
s for the scripts end with .user.js and not with a
MIME type A media type (also known as a MIME type) is a two-part identifier for file formats and format contents transmitted on the Internet. The Internet Assigned Numbers Authority, Internet Assigned Numbers Authority (IANA) is the official authority for t ...
like text/html. Support for HTTPS will meet with Greasemonkey's built in update checker. As of July 2019, the Greasemonkey project lists three recommended user script hostings: *
Gist In computing, GiST or Generalized Search Tree, is a data structure and API that can be used to build a variety of disk-based search trees. GiST is a generalization of the B+ tree, providing a concurrent and recoverable height-balanced search tree ...
, a
pastebin A pastebin or text storage site is a type of online content-hosting service where users can store plain text (e.g. source code snippet (programming), snippets for code review via Internet Relay Chat (IRC)). The first pastebin was the eponymous ...
service operated by GitHub where simple files are hosted. Files can be pasted into a web form and saved. HTTPS is used by default. Files may follow the naming scheme with the ".user.js" suffix for the URL serving as an install link. *Greasy Fork, a site created by the maintainer of userstyles.org. *OpenUserJS.org, a site that started as a fork for the deprecated script repository userscripts.org.


Compatibility

Greasemonkey is available for Firefox, Flock and GNOME Web (formerly called Epiphany). The Greasemonkey extension for Web is part of the Web extensions package. However, this extension is not fully compatible as of release 2.15.1, since some Greasemonkey API functions (e.g. ''GM_getValue'') are unsupported. There are also custom versions for SeaMonkey, Songbird, Pale Moon,
qutebrowser qutebrowser (pronounced "cute browser" ) is a Chromium-based web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI. It is keyboard-driven and is inspired by similar software such as Vimpe ...
and
Falkon Falkon (formerly QupZilla) is a free and open-source web browser developed by KDE. It is built on the QtWebEngine, which is a wrapper for the Chromium browser core. Both KaOS and openMandriva Lx use Falkon as their default browser. Featu ...
browser.


See also

*
List of augmented browsing software {, class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;" , + align="top" , Augmented Browsing Software , - ! style="width:19em" , Name ! Form ! Features ! Compatibility ! Last Updated , - ! , Bookmarklets , Java ...
*
List of Firefox extensions This is a list of WebExtensions that are recommended by Mozilla. Mozilla software Firefox Firefox compatibility Thunderbird Notes References External links Official add-ons site for Mozilla products {{DEFAULTSORT:List Of Firefox ...
* Stylish *
Tampermonkey Tampermonkey is a donationware userscript manager that is available as a browser extension. This software enables the user to add and use userscripts, which are JavaScript programs that can be used to modify web pages. History Tampermonkey was ...


References


External links

*{{Official website, https://www.greasespot.net/ Free Firefox WebExtensions Free software programmed in JavaScript Web scraping