https://wiki.greasespot.net/api.php?action=feedcontributions&user=Arantius&feedformat=atomGreaseSpot Wiki - User contributions [en]2024-03-29T11:23:54ZUser contributionsMediaWiki 1.41.0https://wiki.greasespot.net/index.php?title=Include_and_exclude_rules&diff=8546Include and exclude rules2024-01-04T21:30:27Z<p>Arantius: Reverted edits by Marcasmar5 (talk) to last revision by Arantius</p>
<hr />
<div>[[User script]]s specify include and exclude rules in the [[metadata block]].<br />
<br />
'''The script will execute if it matches any include rule, as long as it does not match an exclude rule.'''<br />
<br />
The [[Metadata_Block#@match|<code>@match</code>]] rule is similar to and possibly preferable over <code>@include</code>.<br />
<br />
== Globs ==<br />
<br />
Include and exclude rules support the <code>*</code> or [[wikipedia:Glob (programming)|globbing operator]].<br />
The <code>*</code> serves as a wildcard that matches one or more of any character.<br />
A rule can have several wildcards or none, in which case the rule must match the entire URL exactly.<br />
Exclude rules look the same, and prevent the script from being executed.<br />
<br />
For example: <code><nowiki>http://www.example.com/foo/*</nowiki></code> will match:<br />
<br />
* <code><nowiki>http://www.example.com/foo/bar</nowiki></code> and,<br />
* <code><nowiki>http://www.example.com/foo/</nowiki></code><br />
<br />
but not:<br />
<br />
* <code><nowiki>http://www.example.com/baz/</nowiki></code>.<br />
<br />
Further examples:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>http://www.example.com/foo/*</nowiki><br />
// @include <nowiki>http://www.example.org/*.bar</nowiki><br />
// @exclude <nowiki>http://www.example.com/foo/baz</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
If no include rule is provided, <code>@include *</code> is assumed.<br />
That is: every URL will be matched, within the allowed [[#Greaseable_schemes|Greaseable schemes]].<br />
<br />
== Regular Expressions ==<br />
<br />
Support for full regular expressions in include and exclude rules is also available.<br />
If the rule both starts and ends with a forward-slash (<code>/</code>) character, the contents inside those slashes are interpreted as a regular expression.<br />
For example:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>/^https?://www\.example\.com/.*$/</nowiki><br />
// @include <nowiki>/^http://www\.example\.(org|net)//</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
Note:<br />
* The rule is parsed as a standard javascript <code>new RegExp()</code>, so you do not need to escape forward slashes inside the rule. Special regex characters (like <code>.</code>) '''should''' still be escaped, as in the above examples; otherwise they have their normal regex meaning (like <code>.</code> matching any non-newline character).<br />
* The rule is always treated as case insensitive.<br />
* Anchors (<code>^</code>, <code>$</code>) are not supplied for you. If desired, they should be used as in the above example.<br />
<br />
== Greaseable schemes ==<br />
<br />
Greasemonkey will run scripts only on documents loaded from particular [http://tools.ietf.org/html/rfc3986#section-3.1 schemes].<br />
By default, those are:<br />
<br />
* http<br />
* https<br />
* about:blank<br />
<br />
User scripts will not run on documents from any other scheme (ftp, file, etc.) or any other part of about.<br />
<br />
<!-- Not in 4.0<br />
== Magic TLD ==<br />
<br />
The only special syntax besides the wildcard is .tld. An include such as <code><nowiki>http://www.example.tld/*</nowiki></code> will match any top level domain, such as <code>www.example.com</code>, <code>www.example.org</code>, <code>www.example.co.uk</code>, and so on. One must be careful with this, to not accidentally leak data to a site that they did not mean to match. This list of TLDs includes myriad dual-segment TLDs (such as ca.us, aeroport.fr and kyoto.jp), beside the plain country or category codes (com, jp, se). For a full list see the [[Magic TLD]] page.<br />
<br />
--><br />
<!-- Not in 4.0<br />
== User Specified Rules ==<br />
<br />
Since Greasemonkey [[Version history#0.9.9|0.9.9]], users have been able to specify their own exclude and include values through the script options dialog in the Add Ons Manager.<br />
Thus, each script has its own rules plus optionally the user's rules.<br />
<br />
The user's rules are checked first, then the script's rules are checked.<br />
If any exclude matches the page, the script does not run.<br />
If any include matches the page, the script will run.<br />
If a script include matches, but a user exclude also matches, the user exclude will take precedence over the script, and it will not run.<br />
If a script exclude matches, but a user include also matches, the user include will take precedence over the script, and it will run.<br />
--></div>Arantiushttps://wiki.greasespot.net/index.php?title=Include_and_exclude_rules&diff=8541Include and exclude rules2023-12-20T23:21:29Z<p>Arantius: Reverted edits by Anaconda dubai (talk) to last revision by Arantius</p>
<hr />
<div>[[User script]]s specify include and exclude rules in the [[metadata block]].<br />
<br />
'''The script will execute if it matches any include rule, as long as it does not match an exclude rule.'''<br />
<br />
The [[Metadata_Block#@match|<code>@match</code>]] rule is similar to and possibly preferable over <code>@include</code>.<br />
<br />
== Globs ==<br />
<br />
Include and exclude rules support the <code>*</code> or [[wikipedia:Glob (programming)|globbing operator]].<br />
The <code>*</code> serves as a wildcard that matches one or more of any character.<br />
A rule can have several wildcards or none, in which case the rule must match the entire URL exactly.<br />
Exclude rules look the same, and prevent the script from being executed.<br />
<br />
For example: <code><nowiki>http://www.example.com/foo/*</nowiki></code> will match:<br />
<br />
* <code><nowiki>http://www.example.com/foo/bar</nowiki></code> and,<br />
* <code><nowiki>http://www.example.com/foo/</nowiki></code><br />
<br />
but not:<br />
<br />
* <code><nowiki>http://www.example.com/baz/</nowiki></code>.<br />
<br />
Further examples:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>http://www.example.com/foo/*</nowiki><br />
// @include <nowiki>http://www.example.org/*.bar</nowiki><br />
// @exclude <nowiki>http://www.example.com/foo/baz</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
If no include rule is provided, <code>@include *</code> is assumed.<br />
That is: every URL will be matched, within the allowed [[#Greaseable_schemes|Greaseable schemes]].<br />
<br />
== Regular Expressions ==<br />
<br />
Support for full regular expressions in include and exclude rules is also available.<br />
If the rule both starts and ends with a forward-slash (<code>/</code>) character, the contents inside those slashes are interpreted as a regular expression.<br />
For example:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>/^https?://www\.example\.com/.*$/</nowiki><br />
// @include <nowiki>/^http://www\.example\.(org|net)//</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
Note:<br />
* The rule is parsed as a standard javascript <code>new RegExp()</code>, so you do not need to escape forward slashes inside the rule. Special regex characters (like <code>.</code>) '''should''' still be escaped, as in the above examples; otherwise they have their normal regex meaning (like <code>.</code> matching any non-newline character).<br />
* The rule is always treated as case insensitive.<br />
* Anchors (<code>^</code>, <code>$</code>) are not supplied for you. If desired, they should be used as in the above example.<br />
<br />
== Greaseable schemes ==<br />
<br />
Greasemonkey will run scripts only on documents loaded from particular [http://tools.ietf.org/html/rfc3986#section-3.1 schemes].<br />
By default, those are:<br />
<br />
* http<br />
* https<br />
* about:blank<br />
<br />
User scripts will not run on documents from any other scheme (ftp, file, etc.) or any other part of about.<br />
<br />
<!-- Not in 4.0<br />
== Magic TLD ==<br />
<br />
The only special syntax besides the wildcard is .tld. An include such as <code><nowiki>http://www.example.tld/*</nowiki></code> will match any top level domain, such as <code>www.example.com</code>, <code>www.example.org</code>, <code>www.example.co.uk</code>, and so on. One must be careful with this, to not accidentally leak data to a site that they did not mean to match. This list of TLDs includes myriad dual-segment TLDs (such as ca.us, aeroport.fr and kyoto.jp), beside the plain country or category codes (com, jp, se). For a full list see the [[Magic TLD]] page.<br />
<br />
--><br />
<!-- Not in 4.0<br />
== User Specified Rules ==<br />
<br />
Since Greasemonkey [[Version history#0.9.9|0.9.9]], users have been able to specify their own exclude and include values through the script options dialog in the Add Ons Manager.<br />
Thus, each script has its own rules plus optionally the user's rules.<br />
<br />
The user's rules are checked first, then the script's rules are checked.<br />
If any exclude matches the page, the script does not run.<br />
If any include matches the page, the script will run.<br />
If a script include matches, but a user exclude also matches, the user exclude will take precedence over the script, and it will not run.<br />
If a script exclude matches, but a user include also matches, the user include will take precedence over the script, and it will run.<br />
--></div>Arantiushttps://wiki.greasespot.net/index.php?title=GM_addStyle&diff=8537GM addStyle2023-11-08T15:12:38Z<p>Arantius: link to @require helper</p>
<hr />
<div>{{DISPLAYTITLE:GM_addStyle}} <br />
<br />
As of Greasemonkey 4.0, this method has been removed.<br />
<br />
You can `@require` a helper script to provide the same functionality, for example [https://gist.github.com/arantius/eec890c9ce4ff2f7abee896c0bba664d gm-addstyle.js].</div>Arantiushttps://wiki.greasespot.net/index.php?title=Include_and_exclude_rules&diff=8536Include and exclude rules2023-11-06T01:58:12Z<p>Arantius: simplify and de-bold match note</p>
<hr />
<div>[[User script]]s specify include and exclude rules in the [[metadata block]].<br />
<br />
'''The script will execute if it matches any include rule, as long as it does not match an exclude rule.'''<br />
<br />
The [[Metadata_Block#@match|<code>@match</code>]] rule is similar to and possibly preferable over <code>@include</code>.<br />
<br />
== Globs ==<br />
<br />
Include and exclude rules support the <code>*</code> or [[wikipedia:Glob (programming)|globbing operator]].<br />
The <code>*</code> serves as a wildcard that matches one or more of any character.<br />
A rule can have several wildcards or none, in which case the rule must match the entire URL exactly.<br />
Exclude rules look the same, and prevent the script from being executed.<br />
<br />
For example: <code><nowiki>http://www.example.com/foo/*</nowiki></code> will match:<br />
<br />
* <code><nowiki>http://www.example.com/foo/bar</nowiki></code> and,<br />
* <code><nowiki>http://www.example.com/foo/</nowiki></code><br />
<br />
but not:<br />
<br />
* <code><nowiki>http://www.example.com/baz/</nowiki></code>.<br />
<br />
Further examples:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>http://www.example.com/foo/*</nowiki><br />
// @include <nowiki>http://www.example.org/*.bar</nowiki><br />
// @exclude <nowiki>http://www.example.com/foo/baz</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
If no include rule is provided, <code>@include *</code> is assumed.<br />
That is: every URL will be matched, within the allowed [[#Greaseable_schemes|Greaseable schemes]].<br />
<br />
== Regular Expressions ==<br />
<br />
Support for full regular expressions in include and exclude rules is also available.<br />
If the rule both starts and ends with a forward-slash (<code>/</code>) character, the contents inside those slashes are interpreted as a regular expression.<br />
For example:<br />
<br />
<pre class="sample"><br />
// ==UserScript==<br />
// @include <nowiki>/^https?://www\.example\.com/.*$/</nowiki><br />
// @include <nowiki>/^http://www\.example\.(org|net)//</nowiki><br />
// ==/UserScript==<br />
</pre><br />
<br />
Note:<br />
* The rule is parsed as a standard javascript <code>new RegExp()</code>, so you do not need to escape forward slashes inside the rule. Special regex characters (like <code>.</code>) '''should''' still be escaped, as in the above examples; otherwise they have their normal regex meaning (like <code>.</code> matching any non-newline character).<br />
* The rule is always treated as case insensitive.<br />
* Anchors (<code>^</code>, <code>$</code>) are not supplied for you. If desired, they should be used as in the above example.<br />
<br />
== Greaseable schemes ==<br />
<br />
Greasemonkey will run scripts only on documents loaded from particular [http://tools.ietf.org/html/rfc3986#section-3.1 schemes].<br />
By default, those are:<br />
<br />
* http<br />
* https<br />
* about:blank<br />
<br />
User scripts will not run on documents from any other scheme (ftp, file, etc.) or any other part of about.<br />
<br />
<!-- Not in 4.0<br />
== Magic TLD ==<br />
<br />
The only special syntax besides the wildcard is .tld. An include such as <code><nowiki>http://www.example.tld/*</nowiki></code> will match any top level domain, such as <code>www.example.com</code>, <code>www.example.org</code>, <code>www.example.co.uk</code>, and so on. One must be careful with this, to not accidentally leak data to a site that they did not mean to match. This list of TLDs includes myriad dual-segment TLDs (such as ca.us, aeroport.fr and kyoto.jp), beside the plain country or category codes (com, jp, se). For a full list see the [[Magic TLD]] page.<br />
<br />
--><br />
<!-- Not in 4.0<br />
== User Specified Rules ==<br />
<br />
Since Greasemonkey [[Version history#0.9.9|0.9.9]], users have been able to specify their own exclude and include values through the script options dialog in the Add Ons Manager.<br />
Thus, each script has its own rules plus optionally the user's rules.<br />
<br />
The user's rules are checked first, then the script's rules are checked.<br />
If any exclude matches the page, the script does not run.<br />
If any include matches the page, the script will run.<br />
If a script include matches, but a user exclude also matches, the user exclude will take precedence over the script, and it will not run.<br />
If a script exclude matches, but a user include also matches, the user include will take precedence over the script, and it will run.<br />
--></div>Arantiushttps://wiki.greasespot.net/index.php?title=Metadata_Block&diff=8535Metadata Block2023-11-06T01:56:18Z<p>Arantius: /* @exclude */</p>
<hr />
<div>== Description ==<br />
<br />
The '''metadata block''' is a section of a [[user script]] that describes the script.<br />
It usually contains the script name, namespace, description, and [[include and exclude rules]].<br />
The metadata block appears in JavaScript line comments and may appear anywhere in the top level Greasemonkey code scope of the script, but is usually near the top of the file.<br />
<br />
If the metadata block includes a key that Greasemonkey does not understand, it will be ignored.<br />
<br />
== Syntax ==<br />
<br />
The metadata block must follow the format:<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @key value<br />
// ==/UserScript==<br />
</pre><br />
<br />
It must use line comments (<code>//</code>) like above, not block comments (<code>/* */</code>).<br />
Note that the opening <code>// ==UserScript==</code> and closing <code>// ==/UserScript==</code> must be precisely at the beginning of its line.<br />
Some keys may have multiple values.<br />
In all cases the key and value(s) are separated by whitespace.<br />
The closing <code>==/UserScript==</code> line should be at the end of the metadata block (not at the end of the script).<br />
<br />
=== @description ===<br />
<br />
Example:<br />
<pre class='sample'>// @description This script even does the laundry!</pre><br />
<br />
Just a brief summary of what the script does, presented to the user as the script is installed, and in the manage dialog.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages; see the [[#@name]] documentation for more detail.<br />
<br />
<!-- 4.x does not use this<br />
=== @downloadURL ===<br />
<br />
The URL to download this script from, when installing updates.<br />
<br />
<pre class='sample'>// @downloadURL https://www.example.com/myscript.user.js</pre><br />
<br />
Greasemonkey's default settings require this value to be secure (<tt><nowiki>https://...</nowiki></tt>) for updates to be applied.<br />
If it is not specified, the URL the script was originally installed from will be used.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @exclude ===<br />
<br />
Examples: see [[#@include]]<br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @exclude rules in a script.<br />
<br />
=== @grant ===<br />
<br />
See dedicated [[@grant]] page.<br />
<br />
=== @icon ===<br />
<br />
Example:<br />
<pre class='sample'>// @icon http://www.example.org/icon.png</pre><br />
<br />
The icon is, as of Greasemonkey 0.9.0, displayed in the script management interface.<br />
Almost any image will work, but a 32x32 pixel size is best.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
=== @include ===<br />
<br />
Examples:<br />
<pre class='sample'>// @include http://www.example.com/*<br />
// @include http://*<br />
// @include *</pre><br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @include rules in a script.<br />
<br />
=== @match ===<br />
<br />
Examples:<br />
<pre class='sample'>// @match https://www.example.com/*<br />
// @match http://*.example.com/*</pre><br />
<br />
The <code>@match</code> metadata imperative is very similar to <code>@include</code>, however it is safer.<br />
It sets more strict rules on what the <code>*</code> character means.<br />
<br />
For details, see the documentation on [https://developer.chrome.com/extensions/match_patterns Match Patterns] for Google Chrome.<br />
Chrome implemented <code>@match</code> first, and Greasemonkey has been designed to be compatible.<br />
<br />
=== @name ===<br />
<br />
Example:<br />
<pre class='sample'>// @name Example Script</pre><br />
<br />
The name of the script.<br />
This appears in the [[Greasemonkey_Manual:Monkey_Menu|monkey menu]], and is also the unique identifier of a script (within a [[#@namespace|namespace]]).<br />
If no name is provided, it will be derived from the file name.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages, for example:<br />
<br />
<pre class='sample'><br />
// @name Example Script<br />
// @name:cs Uživatelské skripty<br />
// @name:es-MX Ejemplo Script <br />
// @name:ru Пользовательские скрипты<br />
</pre><br />
<br />
Add a colon and the locale code, which is the [http://www.w3.org/WAI/ER/IG/ert/iso639.htm ISO 639] language code and optionally a hyphen and [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO 3166] country code, when disambiguation is necessary.<br />
When the user's browser is configured with the matching primary language, that value will be displayed instead.<br />
<br />
=== @namespace ===<br />
<br />
Example:<br />
<br />
<pre class='sample'>// @namespace http://www.example.com/gmscripts</pre><br />
<br />
The combination of namespace and name is the unique identifier for a Greasemonkey script.<br />
If a script is being installed, and a script with that same name '''and''' namespace already exists, it will be replaced by the new script.<br />
Otherwise, the new script is added to the set of installed scripts.<br />
A script author will usually put all of their scripts under one common namespace, and then assign each script a unique name.<br />
<br />
While the namespace is non-semantic, a URL is often used.<br />
Some authors use the common home page for the collection of scripts they have written.<br />
But remember, the namespace can be any unique value.<br />
<br />
=== @noframes ===<br />
<br />
Example:<br />
<pre class='sample'>// @noframes</pre><br />
<br />
When present, this imperative restricts the execution of the script.<br />
The script will run only in the top-level document, never in nested frames.<br />
It takes no arguments, it is either present or not present.<br />
This is off (scripts run in frames) by default.<br />
<br />
=== @require ===<br />
<br />
Example:<br />
<pre class='sample'>// @require http://www.example.com/example.js</pre><br />
<br />
There can be any number of @require keys in a script.<br />
Each @require is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@require</code> value(s) have been altered, these new values will be used (thus each <code>@require</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[:Category:@require Library]]<br />
* [[#Adding Resources]]<br />
<br />
=== @resource ===<br />
<br />
Example:<br />
<pre class='sample'>// @resource resourceName http://www.example.com/example.png</pre><br />
<br />
There can be any number of @resource keys in a script.<br />
<br />
While the resourceName is non-semantic, it should comply with JavaScript identifier restrictions.<br />
Each @resource must have a unique name.<br />
<br />
Each @resource is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
These named resources may be accessed through [[GM_getResourceURL|GM.getResourceURL]].<br />
<br />
See also:<br />
<br />
* [[#Adding Resources]]<br />
<br />
=== @run-at ===<br />
<br />
:Compatibility: Limited support in [[Version_history#4.0_2|Greasemonkey 4.0]].<br />
<br />
Example:<br />
<pre class='sample'>// @run-at document-end</pre><br />
<br />
This key supports three values:<br />
<br />
; document-end<br />
: The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x.<br />
; document-start<br />
: The script will run before any document begins loading, thus before any scripts run or images load.<br />
; document-idle<br />
: The script will run after the page and all resources (images, style sheets, etc.) are loaded and page scripts have run.<br />
<br />
To detect if you are running at <code>document-start</code> time, check the value of <code>[https://developer.mozilla.org/en/DOM/document.readyState document.readyState]</code>.<br />
For example:<br />
<br />
<pre class="sample"><br />
if ('loading' == document.readyState) {<br />
alert("This script is running at document-start time.");<br />
} else {<br />
alert("This script is running with document.readyState: " + document.readyState);<br />
}<br />
</pre><br />
<br />
Scripts running at <code>document-end</code> will have the value <code>interactive</code> here.<br />
<br />
=== @version ===<br />
<br />
Example:<br />
<pre class='sample'>// @version 1</pre><br />
<br />
The version is used by the auto-update feature.<br />
When `@version` is set and if the auto-update feature is enabled, Greasemonkey will check periodically for new versions of the script by downloading it again (from same location where it was originally installed).<br />
If the new downloaded `@version` is higher, the update will be installed.<br />
Greasemonkey uses the [https://github.com/omichelsen/compare-versions#compare-versions compare-versions] library to determine when a version is higher/greater/newer.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @name My Script<br />
// @namespace http://www.example.com/gmscripts<br />
// @description Scripting is fun<br />
// @include http://www.example.com/*<br />
// @include http://www.example.org/*<br />
// @exclude http://www.example.org/foo<br />
// @require foo.js<br />
// @resource resourceName1 resource1.png<br />
// @resource resourceName2 http://www.example.com/resource2.png<br />
// @version 1.0<br />
// @icon http://www.example.net/icon.png<br />
// ==/UserScript==<br />
</pre><br />
<br />
== Adding Resources ==<br />
<br />
Two metadata imperatives allow downloading files (once, at install time) for efficient reference:<br />
First [[#@require|@require]], which includes a remote code resource.<br />
Second [[#@resource|@resource]], which makes a remote data resource available.<br />
<br />
It is possible to add a new entry for either of these values, while editing a script that is already installed.<br />
In either case, simply add the appropriate line and the referenced file will be downloaded and made available the next time the script runs.<br />
If you specify a relative URL, then it will be interpreted as relative to the the URL the script was originally downloaded from.<br />
<!--<br />
If there was no original download URL (i.e. a brand new script created from a local file), then this will work if you also create an appropriately named file alongside the script. (As of Greasemonkey 1.0.)<br />
--><br />
<br />
== See Also ==<br />
<br />
* [[API reference]]<br />
* [[Third-Party Libraries]]<br />
<br />
== Notes ==<br />
<br />
[[Category:API Reference]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=Metadata_Block&diff=8534Metadata Block2023-11-06T01:55:35Z<p>Arantius: remove unsupported @updateURL</p>
<hr />
<div>== Description ==<br />
<br />
The '''metadata block''' is a section of a [[user script]] that describes the script.<br />
It usually contains the script name, namespace, description, and [[include and exclude rules]].<br />
The metadata block appears in JavaScript line comments and may appear anywhere in the top level Greasemonkey code scope of the script, but is usually near the top of the file.<br />
<br />
If the metadata block includes a key that Greasemonkey does not understand, it will be ignored.<br />
<br />
== Syntax ==<br />
<br />
The metadata block must follow the format:<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @key value<br />
// ==/UserScript==<br />
</pre><br />
<br />
It must use line comments (<code>//</code>) like above, not block comments (<code>/* */</code>).<br />
Note that the opening <code>// ==UserScript==</code> and closing <code>// ==/UserScript==</code> must be precisely at the beginning of its line.<br />
Some keys may have multiple values.<br />
In all cases the key and value(s) are separated by whitespace.<br />
The closing <code>==/UserScript==</code> line should be at the end of the metadata block (not at the end of the script).<br />
<br />
=== @description ===<br />
<br />
Example:<br />
<pre class='sample'>// @description This script even does the laundry!</pre><br />
<br />
Just a brief summary of what the script does, presented to the user as the script is installed, and in the manage dialog.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages; see the [[#@name]] documentation for more detail.<br />
<br />
<!-- 4.x does not use this<br />
=== @downloadURL ===<br />
<br />
The URL to download this script from, when installing updates.<br />
<br />
<pre class='sample'>// @downloadURL https://www.example.com/myscript.user.js</pre><br />
<br />
Greasemonkey's default settings require this value to be secure (<tt><nowiki>https://...</nowiki></tt>) for updates to be applied.<br />
If it is not specified, the URL the script was originally installed from will be used.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @exclude ===<br />
<br />
Examples: see @include<br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @exclude rules in a script.<br />
<br />
=== @grant ===<br />
<br />
See dedicated [[@grant]] page.<br />
<br />
=== @icon ===<br />
<br />
Example:<br />
<pre class='sample'>// @icon http://www.example.org/icon.png</pre><br />
<br />
The icon is, as of Greasemonkey 0.9.0, displayed in the script management interface.<br />
Almost any image will work, but a 32x32 pixel size is best.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
=== @include ===<br />
<br />
Examples:<br />
<pre class='sample'>// @include http://www.example.com/*<br />
// @include http://*<br />
// @include *</pre><br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @include rules in a script.<br />
<br />
=== @match ===<br />
<br />
Examples:<br />
<pre class='sample'>// @match https://www.example.com/*<br />
// @match http://*.example.com/*</pre><br />
<br />
The <code>@match</code> metadata imperative is very similar to <code>@include</code>, however it is safer.<br />
It sets more strict rules on what the <code>*</code> character means.<br />
<br />
For details, see the documentation on [https://developer.chrome.com/extensions/match_patterns Match Patterns] for Google Chrome.<br />
Chrome implemented <code>@match</code> first, and Greasemonkey has been designed to be compatible.<br />
<br />
=== @name ===<br />
<br />
Example:<br />
<pre class='sample'>// @name Example Script</pre><br />
<br />
The name of the script.<br />
This appears in the [[Greasemonkey_Manual:Monkey_Menu|monkey menu]], and is also the unique identifier of a script (within a [[#@namespace|namespace]]).<br />
If no name is provided, it will be derived from the file name.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages, for example:<br />
<br />
<pre class='sample'><br />
// @name Example Script<br />
// @name:cs Uživatelské skripty<br />
// @name:es-MX Ejemplo Script <br />
// @name:ru Пользовательские скрипты<br />
</pre><br />
<br />
Add a colon and the locale code, which is the [http://www.w3.org/WAI/ER/IG/ert/iso639.htm ISO 639] language code and optionally a hyphen and [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO 3166] country code, when disambiguation is necessary.<br />
When the user's browser is configured with the matching primary language, that value will be displayed instead.<br />
<br />
=== @namespace ===<br />
<br />
Example:<br />
<br />
<pre class='sample'>// @namespace http://www.example.com/gmscripts</pre><br />
<br />
The combination of namespace and name is the unique identifier for a Greasemonkey script.<br />
If a script is being installed, and a script with that same name '''and''' namespace already exists, it will be replaced by the new script.<br />
Otherwise, the new script is added to the set of installed scripts.<br />
A script author will usually put all of their scripts under one common namespace, and then assign each script a unique name.<br />
<br />
While the namespace is non-semantic, a URL is often used.<br />
Some authors use the common home page for the collection of scripts they have written.<br />
But remember, the namespace can be any unique value.<br />
<br />
=== @noframes ===<br />
<br />
Example:<br />
<pre class='sample'>// @noframes</pre><br />
<br />
When present, this imperative restricts the execution of the script.<br />
The script will run only in the top-level document, never in nested frames.<br />
It takes no arguments, it is either present or not present.<br />
This is off (scripts run in frames) by default.<br />
<br />
=== @require ===<br />
<br />
Example:<br />
<pre class='sample'>// @require http://www.example.com/example.js</pre><br />
<br />
There can be any number of @require keys in a script.<br />
Each @require is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@require</code> value(s) have been altered, these new values will be used (thus each <code>@require</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[:Category:@require Library]]<br />
* [[#Adding Resources]]<br />
<br />
=== @resource ===<br />
<br />
Example:<br />
<pre class='sample'>// @resource resourceName http://www.example.com/example.png</pre><br />
<br />
There can be any number of @resource keys in a script.<br />
<br />
While the resourceName is non-semantic, it should comply with JavaScript identifier restrictions.<br />
Each @resource must have a unique name.<br />
<br />
Each @resource is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
These named resources may be accessed through [[GM_getResourceURL|GM.getResourceURL]].<br />
<br />
See also:<br />
<br />
* [[#Adding Resources]]<br />
<br />
=== @run-at ===<br />
<br />
:Compatibility: Limited support in [[Version_history#4.0_2|Greasemonkey 4.0]].<br />
<br />
Example:<br />
<pre class='sample'>// @run-at document-end</pre><br />
<br />
This key supports three values:<br />
<br />
; document-end<br />
: The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x.<br />
; document-start<br />
: The script will run before any document begins loading, thus before any scripts run or images load.<br />
; document-idle<br />
: The script will run after the page and all resources (images, style sheets, etc.) are loaded and page scripts have run.<br />
<br />
To detect if you are running at <code>document-start</code> time, check the value of <code>[https://developer.mozilla.org/en/DOM/document.readyState document.readyState]</code>.<br />
For example:<br />
<br />
<pre class="sample"><br />
if ('loading' == document.readyState) {<br />
alert("This script is running at document-start time.");<br />
} else {<br />
alert("This script is running with document.readyState: " + document.readyState);<br />
}<br />
</pre><br />
<br />
Scripts running at <code>document-end</code> will have the value <code>interactive</code> here.<br />
<br />
=== @version ===<br />
<br />
Example:<br />
<pre class='sample'>// @version 1</pre><br />
<br />
The version is used by the auto-update feature.<br />
When `@version` is set and if the auto-update feature is enabled, Greasemonkey will check periodically for new versions of the script by downloading it again (from same location where it was originally installed).<br />
If the new downloaded `@version` is higher, the update will be installed.<br />
Greasemonkey uses the [https://github.com/omichelsen/compare-versions#compare-versions compare-versions] library to determine when a version is higher/greater/newer.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @name My Script<br />
// @namespace http://www.example.com/gmscripts<br />
// @description Scripting is fun<br />
// @include http://www.example.com/*<br />
// @include http://www.example.org/*<br />
// @exclude http://www.example.org/foo<br />
// @require foo.js<br />
// @resource resourceName1 resource1.png<br />
// @resource resourceName2 http://www.example.com/resource2.png<br />
// @version 1.0<br />
// @icon http://www.example.net/icon.png<br />
// ==/UserScript==<br />
</pre><br />
<br />
== Adding Resources ==<br />
<br />
Two metadata imperatives allow downloading files (once, at install time) for efficient reference:<br />
First [[#@require|@require]], which includes a remote code resource.<br />
Second [[#@resource|@resource]], which makes a remote data resource available.<br />
<br />
It is possible to add a new entry for either of these values, while editing a script that is already installed.<br />
In either case, simply add the appropriate line and the referenced file will be downloaded and made available the next time the script runs.<br />
If you specify a relative URL, then it will be interpreted as relative to the the URL the script was originally downloaded from.<br />
<!--<br />
If there was no original download URL (i.e. a brand new script created from a local file), then this will work if you also create an appropriately named file alongside the script. (As of Greasemonkey 1.0.)<br />
--><br />
<br />
== See Also ==<br />
<br />
* [[API reference]]<br />
* [[Third-Party Libraries]]<br />
<br />
== Notes ==<br />
<br />
[[Category:API Reference]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=Metadata_Block&diff=8533Metadata Block2023-11-06T01:54:34Z<p>Arantius: /* @resource */</p>
<hr />
<div>== Description ==<br />
<br />
The '''metadata block''' is a section of a [[user script]] that describes the script.<br />
It usually contains the script name, namespace, description, and [[include and exclude rules]].<br />
The metadata block appears in JavaScript line comments and may appear anywhere in the top level Greasemonkey code scope of the script, but is usually near the top of the file.<br />
<br />
If the metadata block includes a key that Greasemonkey does not understand, it will be ignored.<br />
<br />
== Syntax ==<br />
<br />
The metadata block must follow the format:<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @key value<br />
// ==/UserScript==<br />
</pre><br />
<br />
It must use line comments (<code>//</code>) like above, not block comments (<code>/* */</code>).<br />
Note that the opening <code>// ==UserScript==</code> and closing <code>// ==/UserScript==</code> must be precisely at the beginning of its line.<br />
Some keys may have multiple values.<br />
In all cases the key and value(s) are separated by whitespace.<br />
The closing <code>==/UserScript==</code> line should be at the end of the metadata block (not at the end of the script).<br />
<br />
=== @description ===<br />
<br />
Example:<br />
<pre class='sample'>// @description This script even does the laundry!</pre><br />
<br />
Just a brief summary of what the script does, presented to the user as the script is installed, and in the manage dialog.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages; see the [[#@name]] documentation for more detail.<br />
<br />
<!-- 4.x does not use this<br />
=== @downloadURL ===<br />
<br />
The URL to download this script from, when installing updates.<br />
<br />
<pre class='sample'>// @downloadURL https://www.example.com/myscript.user.js</pre><br />
<br />
Greasemonkey's default settings require this value to be secure (<tt><nowiki>https://...</nowiki></tt>) for updates to be applied.<br />
If it is not specified, the URL the script was originally installed from will be used.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @exclude ===<br />
<br />
Examples: see @include<br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @exclude rules in a script.<br />
<br />
=== @grant ===<br />
<br />
See dedicated [[@grant]] page.<br />
<br />
=== @icon ===<br />
<br />
Example:<br />
<pre class='sample'>// @icon http://www.example.org/icon.png</pre><br />
<br />
The icon is, as of Greasemonkey 0.9.0, displayed in the script management interface.<br />
Almost any image will work, but a 32x32 pixel size is best.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
=== @include ===<br />
<br />
Examples:<br />
<pre class='sample'>// @include http://www.example.com/*<br />
// @include http://*<br />
// @include *</pre><br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @include rules in a script.<br />
<br />
=== @match ===<br />
<br />
Examples:<br />
<pre class='sample'>// @match https://www.example.com/*<br />
// @match http://*.example.com/*</pre><br />
<br />
The <code>@match</code> metadata imperative is very similar to <code>@include</code>, however it is safer.<br />
It sets more strict rules on what the <code>*</code> character means.<br />
<br />
For details, see the documentation on [https://developer.chrome.com/extensions/match_patterns Match Patterns] for Google Chrome.<br />
Chrome implemented <code>@match</code> first, and Greasemonkey has been designed to be compatible.<br />
<br />
=== @name ===<br />
<br />
Example:<br />
<pre class='sample'>// @name Example Script</pre><br />
<br />
The name of the script.<br />
This appears in the [[Greasemonkey_Manual:Monkey_Menu|monkey menu]], and is also the unique identifier of a script (within a [[#@namespace|namespace]]).<br />
If no name is provided, it will be derived from the file name.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages, for example:<br />
<br />
<pre class='sample'><br />
// @name Example Script<br />
// @name:cs Uživatelské skripty<br />
// @name:es-MX Ejemplo Script <br />
// @name:ru Пользовательские скрипты<br />
</pre><br />
<br />
Add a colon and the locale code, which is the [http://www.w3.org/WAI/ER/IG/ert/iso639.htm ISO 639] language code and optionally a hyphen and [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO 3166] country code, when disambiguation is necessary.<br />
When the user's browser is configured with the matching primary language, that value will be displayed instead.<br />
<br />
=== @namespace ===<br />
<br />
Example:<br />
<br />
<pre class='sample'>// @namespace http://www.example.com/gmscripts</pre><br />
<br />
The combination of namespace and name is the unique identifier for a Greasemonkey script.<br />
If a script is being installed, and a script with that same name '''and''' namespace already exists, it will be replaced by the new script.<br />
Otherwise, the new script is added to the set of installed scripts.<br />
A script author will usually put all of their scripts under one common namespace, and then assign each script a unique name.<br />
<br />
While the namespace is non-semantic, a URL is often used.<br />
Some authors use the common home page for the collection of scripts they have written.<br />
But remember, the namespace can be any unique value.<br />
<br />
=== @noframes ===<br />
<br />
Example:<br />
<pre class='sample'>// @noframes</pre><br />
<br />
When present, this imperative restricts the execution of the script.<br />
The script will run only in the top-level document, never in nested frames.<br />
It takes no arguments, it is either present or not present.<br />
This is off (scripts run in frames) by default.<br />
<br />
=== @require ===<br />
<br />
Example:<br />
<pre class='sample'>// @require http://www.example.com/example.js</pre><br />
<br />
There can be any number of @require keys in a script.<br />
Each @require is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@require</code> value(s) have been altered, these new values will be used (thus each <code>@require</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[:Category:@require Library]]<br />
* [[#Adding Resources]]<br />
<br />
=== @resource ===<br />
<br />
Example:<br />
<pre class='sample'>// @resource resourceName http://www.example.com/example.png</pre><br />
<br />
There can be any number of @resource keys in a script.<br />
<br />
While the resourceName is non-semantic, it should comply with JavaScript identifier restrictions.<br />
Each @resource must have a unique name.<br />
<br />
Each @resource is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
These named resources may be accessed through [[GM_getResourceURL|GM.getResourceURL]].<br />
<br />
See also:<br />
<br />
* [[#Adding Resources]]<br />
<br />
=== @run-at ===<br />
<br />
:Compatibility: Limited support in [[Version_history#4.0_2|Greasemonkey 4.0]].<br />
<br />
Example:<br />
<pre class='sample'>// @run-at document-end</pre><br />
<br />
This key supports three values:<br />
<br />
; document-end<br />
: The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x.<br />
; document-start<br />
: The script will run before any document begins loading, thus before any scripts run or images load.<br />
; document-idle<br />
: The script will run after the page and all resources (images, style sheets, etc.) are loaded and page scripts have run.<br />
<br />
To detect if you are running at <code>document-start</code> time, check the value of <code>[https://developer.mozilla.org/en/DOM/document.readyState document.readyState]</code>.<br />
For example:<br />
<br />
<pre class="sample"><br />
if ('loading' == document.readyState) {<br />
alert("This script is running at document-start time.");<br />
} else {<br />
alert("This script is running with document.readyState: " + document.readyState);<br />
}<br />
</pre><br />
<br />
Scripts running at <code>document-end</code> will have the value <code>interactive</code> here.<br />
<br />
<!-- Not supported by 4.x<br />
=== @updateURL ===<br />
<br />
The URL that Greasemonkey will download when checking for script updates.<br />
<br />
<pre class='sample'>// @updateURL https://www.example.com/myscript.meta.js</pre><br />
<br />
This URL need only contain the metadata block.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
If the [[#@version|@version]] specified here is newer than the installed version, an update will be offered to the user.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @version ===<br />
<br />
Example:<br />
<pre class='sample'>// @version 1</pre><br />
<br />
The version is used by the auto-update feature.<br />
When `@version` is set and if the auto-update feature is enabled, Greasemonkey will check periodically for new versions of the script by downloading it again (from same location where it was originally installed).<br />
If the new downloaded `@version` is higher, the update will be installed.<br />
Greasemonkey uses the [https://github.com/omichelsen/compare-versions#compare-versions compare-versions] library to determine when a version is higher/greater/newer.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @name My Script<br />
// @namespace http://www.example.com/gmscripts<br />
// @description Scripting is fun<br />
// @include http://www.example.com/*<br />
// @include http://www.example.org/*<br />
// @exclude http://www.example.org/foo<br />
// @require foo.js<br />
// @resource resourceName1 resource1.png<br />
// @resource resourceName2 http://www.example.com/resource2.png<br />
// @version 1.0<br />
// @icon http://www.example.net/icon.png<br />
// ==/UserScript==<br />
</pre><br />
<br />
== Adding Resources ==<br />
<br />
Two metadata imperatives allow downloading files (once, at install time) for efficient reference:<br />
First [[#@require|@require]], which includes a remote code resource.<br />
Second [[#@resource|@resource]], which makes a remote data resource available.<br />
<br />
It is possible to add a new entry for either of these values, while editing a script that is already installed.<br />
In either case, simply add the appropriate line and the referenced file will be downloaded and made available the next time the script runs.<br />
If you specify a relative URL, then it will be interpreted as relative to the the URL the script was originally downloaded from.<br />
<!--<br />
If there was no original download URL (i.e. a brand new script created from a local file), then this will work if you also create an appropriately named file alongside the script. (As of Greasemonkey 1.0.)<br />
--><br />
<br />
== See Also ==<br />
<br />
* [[API reference]]<br />
* [[Third-Party Libraries]]<br />
<br />
== Notes ==<br />
<br />
[[Category:API Reference]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=Metadata_Block&diff=8532Metadata Block2023-11-02T13:52:54Z<p>Arantius: /* @version */</p>
<hr />
<div>== Description ==<br />
<br />
The '''metadata block''' is a section of a [[user script]] that describes the script.<br />
It usually contains the script name, namespace, description, and [[include and exclude rules]].<br />
The metadata block appears in JavaScript line comments and may appear anywhere in the top level Greasemonkey code scope of the script, but is usually near the top of the file.<br />
<br />
If the metadata block includes a key that Greasemonkey does not understand, it will be ignored.<br />
<br />
== Syntax ==<br />
<br />
The metadata block must follow the format:<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @key value<br />
// ==/UserScript==<br />
</pre><br />
<br />
It must use line comments (<code>//</code>) like above, not block comments (<code>/* */</code>).<br />
Note that the opening <code>// ==UserScript==</code> and closing <code>// ==/UserScript==</code> must be precisely at the beginning of its line.<br />
Some keys may have multiple values.<br />
In all cases the key and value(s) are separated by whitespace.<br />
The closing <code>==/UserScript==</code> line should be at the end of the metadata block (not at the end of the script).<br />
<br />
=== @description ===<br />
<br />
Example:<br />
<pre class='sample'>// @description This script even does the laundry!</pre><br />
<br />
Just a brief summary of what the script does, presented to the user as the script is installed, and in the manage dialog.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages; see the [[#@name]] documentation for more detail.<br />
<br />
<!-- 4.x does not use this<br />
=== @downloadURL ===<br />
<br />
The URL to download this script from, when installing updates.<br />
<br />
<pre class='sample'>// @downloadURL https://www.example.com/myscript.user.js</pre><br />
<br />
Greasemonkey's default settings require this value to be secure (<tt><nowiki>https://...</nowiki></tt>) for updates to be applied.<br />
If it is not specified, the URL the script was originally installed from will be used.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @exclude ===<br />
<br />
Examples: see @include<br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @exclude rules in a script.<br />
<br />
=== @grant ===<br />
<br />
See dedicated [[@grant]] page.<br />
<br />
=== @icon ===<br />
<br />
Example:<br />
<pre class='sample'>// @icon http://www.example.org/icon.png</pre><br />
<br />
The icon is, as of Greasemonkey 0.9.0, displayed in the script management interface.<br />
Almost any image will work, but a 32x32 pixel size is best.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
=== @include ===<br />
<br />
Examples:<br />
<pre class='sample'>// @include http://www.example.com/*<br />
// @include http://*<br />
// @include *</pre><br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @include rules in a script.<br />
<br />
=== @match ===<br />
<br />
Examples:<br />
<pre class='sample'>// @match https://www.example.com/*<br />
// @match http://*.example.com/*</pre><br />
<br />
The <code>@match</code> metadata imperative is very similar to <code>@include</code>, however it is safer.<br />
It sets more strict rules on what the <code>*</code> character means.<br />
<br />
For details, see the documentation on [https://developer.chrome.com/extensions/match_patterns Match Patterns] for Google Chrome.<br />
Chrome implemented <code>@match</code> first, and Greasemonkey has been designed to be compatible.<br />
<br />
=== @name ===<br />
<br />
Example:<br />
<pre class='sample'>// @name Example Script</pre><br />
<br />
The name of the script.<br />
This appears in the [[Greasemonkey_Manual:Monkey_Menu|monkey menu]], and is also the unique identifier of a script (within a [[#@namespace|namespace]]).<br />
If no name is provided, it will be derived from the file name.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages, for example:<br />
<br />
<pre class='sample'><br />
// @name Example Script<br />
// @name:cs Uživatelské skripty<br />
// @name:es-MX Ejemplo Script <br />
// @name:ru Пользовательские скрипты<br />
</pre><br />
<br />
Add a colon and the locale code, which is the [http://www.w3.org/WAI/ER/IG/ert/iso639.htm ISO 639] language code and optionally a hyphen and [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO 3166] country code, when disambiguation is necessary.<br />
When the user's browser is configured with the matching primary language, that value will be displayed instead.<br />
<br />
=== @namespace ===<br />
<br />
Example:<br />
<br />
<pre class='sample'>// @namespace http://www.example.com/gmscripts</pre><br />
<br />
The combination of namespace and name is the unique identifier for a Greasemonkey script.<br />
If a script is being installed, and a script with that same name '''and''' namespace already exists, it will be replaced by the new script.<br />
Otherwise, the new script is added to the set of installed scripts.<br />
A script author will usually put all of their scripts under one common namespace, and then assign each script a unique name.<br />
<br />
While the namespace is non-semantic, a URL is often used.<br />
Some authors use the common home page for the collection of scripts they have written.<br />
But remember, the namespace can be any unique value.<br />
<br />
=== @noframes ===<br />
<br />
Example:<br />
<pre class='sample'>// @noframes</pre><br />
<br />
When present, this imperative restricts the execution of the script.<br />
The script will run only in the top-level document, never in nested frames.<br />
It takes no arguments, it is either present or not present.<br />
This is off (scripts run in frames) by default.<br />
<br />
=== @require ===<br />
<br />
Example:<br />
<pre class='sample'>// @require http://www.example.com/example.js</pre><br />
<br />
There can be any number of @require keys in a script.<br />
Each @require is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@require</code> value(s) have been altered, these new values will be used (thus each <code>@require</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[:Category:@require Library]]<br />
* [[#Adding Resources]]<br />
<br />
=== @resource ===<br />
<br />
Example:<br />
<pre class='sample'>// @resource resourceName http://www.example.com/example.png</pre><br />
<br />
There can be any number of @resource keys in a script.<br />
<br />
While the resourceName is non-semantic, it should comply with JavaScript identifier restrictions.<br />
Each @resource must have a unique name.<br />
<br />
Each @resource is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
These named resources may be accessed through [[GM_getResourceText]] and [[GM_getResourceURL]] respectively.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@resource</code> value(s) have been altered, these new values will be used (thus each <code>@resource</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[#Adding Resources]]<br />
<br />
=== @run-at ===<br />
<br />
:Compatibility: Limited support in [[Version_history#4.0_2|Greasemonkey 4.0]].<br />
<br />
Example:<br />
<pre class='sample'>// @run-at document-end</pre><br />
<br />
This key supports three values:<br />
<br />
; document-end<br />
: The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x.<br />
; document-start<br />
: The script will run before any document begins loading, thus before any scripts run or images load.<br />
; document-idle<br />
: The script will run after the page and all resources (images, style sheets, etc.) are loaded and page scripts have run.<br />
<br />
To detect if you are running at <code>document-start</code> time, check the value of <code>[https://developer.mozilla.org/en/DOM/document.readyState document.readyState]</code>.<br />
For example:<br />
<br />
<pre class="sample"><br />
if ('loading' == document.readyState) {<br />
alert("This script is running at document-start time.");<br />
} else {<br />
alert("This script is running with document.readyState: " + document.readyState);<br />
}<br />
</pre><br />
<br />
Scripts running at <code>document-end</code> will have the value <code>interactive</code> here.<br />
<br />
<!-- Not supported by 4.x<br />
=== @updateURL ===<br />
<br />
The URL that Greasemonkey will download when checking for script updates.<br />
<br />
<pre class='sample'>// @updateURL https://www.example.com/myscript.meta.js</pre><br />
<br />
This URL need only contain the metadata block.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
If the [[#@version|@version]] specified here is newer than the installed version, an update will be offered to the user.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @version ===<br />
<br />
Example:<br />
<pre class='sample'>// @version 1</pre><br />
<br />
The version is used by the auto-update feature.<br />
When `@version` is set and if the auto-update feature is enabled, Greasemonkey will check periodically for new versions of the script by downloading it again (from same location where it was originally installed).<br />
If the new downloaded `@version` is higher, the update will be installed.<br />
Greasemonkey uses the [https://github.com/omichelsen/compare-versions#compare-versions compare-versions] library to determine when a version is higher/greater/newer.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @name My Script<br />
// @namespace http://www.example.com/gmscripts<br />
// @description Scripting is fun<br />
// @include http://www.example.com/*<br />
// @include http://www.example.org/*<br />
// @exclude http://www.example.org/foo<br />
// @require foo.js<br />
// @resource resourceName1 resource1.png<br />
// @resource resourceName2 http://www.example.com/resource2.png<br />
// @version 1.0<br />
// @icon http://www.example.net/icon.png<br />
// ==/UserScript==<br />
</pre><br />
<br />
== Adding Resources ==<br />
<br />
Two metadata imperatives allow downloading files (once, at install time) for efficient reference:<br />
First [[#@require|@require]], which includes a remote code resource.<br />
Second [[#@resource|@resource]], which makes a remote data resource available.<br />
<br />
It is possible to add a new entry for either of these values, while editing a script that is already installed.<br />
In either case, simply add the appropriate line and the referenced file will be downloaded and made available the next time the script runs.<br />
If you specify a relative URL, then it will be interpreted as relative to the the URL the script was originally downloaded from.<br />
<!--<br />
If there was no original download URL (i.e. a brand new script created from a local file), then this will work if you also create an appropriately named file alongside the script. (As of Greasemonkey 1.0.)<br />
--><br />
<br />
== See Also ==<br />
<br />
* [[API reference]]<br />
* [[Third-Party Libraries]]<br />
<br />
== Notes ==<br />
<br />
[[Category:API Reference]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=User:Greasemonkey_Manual:API&diff=8531User:Greasemonkey Manual:API2023-10-02T23:31:43Z<p>Arantius: Arantius moved page User:Greasemonkey Manual:API to Talk:Greasemonkey Manual:API over redirect: revert</p>
<hr />
<div>#REDIRECT [[Talk:Greasemonkey Manual:API]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=Talk:Greasemonkey_Manual:API&diff=8530Talk:Greasemonkey Manual:API2023-10-02T23:31:43Z<p>Arantius: Arantius moved page User:Greasemonkey Manual:API to Talk:Greasemonkey Manual:API over redirect: revert</p>
<hr />
<div>== GM_getObject/GM_setObject ==<br />
<br />
I think these two additional functions might be handy:<br />
<br />
{{Function|GM_getObject|name, default}}<br/><br />
{{Function|GM_setObject|name, value}}<br />
<br />
==== Implementation: ====<br />
<br />
function GM_getObject(name, defaultValue) {<br />
var s = GM_getValue(name);<br />
<br />
if (s === undefined) {<br />
return defaultValue;<br />
}<br />
else {<br />
return JSON.parse(s);<br />
}<br />
}<br />
<br />
function GM_setObject(name, value) {<br />
GM_setValue(name, JSON.stringify(value));<br />
}<br />
<br />
: It is the general policy of Greasemonkey to ''not'' implement a special API just to build something that a user script can easily do on its own. Something like this is a perfect candidate for a reusable component in the [[:Category:@require Library]]. [[User:Arantius|Arantius]] 12:55, 27 July 2010 (UTC)</div>Arantiushttps://wiki.greasespot.net/index.php?title=UnsafeWindow&diff=7923UnsafeWindow2023-03-11T14:15:56Z<p>Arantius: simple formatting</p>
<hr />
<div>{{DISPLAYTITLE:unsafeWindow}}<br />
{{security}}<br />
<br />
== Description ==<br />
<br />
This object allows a [[User script]] to access "custom" properties set by the web page.<br />
The user script is otherwise isolated from these properties.<br />
<br />
:*'''USE OF UNSAFEWINDOW IS INSECURE, AND IT SHOULD BE AVOIDED WHENEVER POSSIBLE.'''<br />
<br />
unsafeWindow bypasses [[Greasemonkey]]'s security model, which exists to make sure that malicious web pages cannot alter objects in such a way as to make user scripts (which execute with more privileges than ordinary JavaScript running in a web page) do things that their authors or users did not intend.<br />
User scripts should therefore avoid calling or in any other way depending on any properties on unsafeWindow - especially if they are executed for arbitrary web pages, such as those with <code>@[[Include and exclude rules|include]] *</code>.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample-bad'><br />
unsafeWindow.SomeVarInPage = "Testing";<br />
</pre><br />
<br />
<pre class='sample-bad'><br />
unsafeWindow.SomeFunctionInPage("Test");<br />
</pre><br />
<br />
<pre class='sample-bad'><br />
var oldFunction = unsafeWindow.SomeFunctionInPage;<br />
unsafeWindow.SomeFunctionInPage = function(text) {<br />
alert('Hijacked! Argument was ' + text + '.');<br />
return oldFunction(text);<br />
};<br />
</pre><br />
<br />
== Alternatives to unsafeWindow ==<br />
<br />
''Sometimes'', you just can't get around using unsafeWindow.<br />
Most of the time, however, you can!<br />
See [[:Category:Coding Tips:Interacting With The Page]] for details on various methods to interact with the page that do '''not''' use unsafeWindow.<br />
<br />
[[Category:API_Reference|U]] <br />
[[Category:Scripting context]]<br />
[[Category:Security]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM.listValues&diff=7753GM.listValues2022-10-20T20:49:15Z<p>Arantius: under to dot in API link; mention more explicitly that the strings are value _names_</p>
<hr />
<div>{{DISPLAYTITLE:GM_listValues}}<br />
<br />
== Description ==<br />
<br />
This method retrieves an array of preference names that this script has stored.<br />
See [[GM.setValue]] for details on the storage of these values.<br />
<br />
== Syntax ==<br />
<br />
{{Function|GM.listValues|}}<br />
<br />
Compatibility: [[Version_history#4.0_2|Greasemonkey 4.0+]]<br />
<br />
=== Arguments ===<br />
<br />
None.<br />
<br />
=== Returns ===<br />
<br />
A [[Promise]], rejected in case of error and otherwise resolved with an <code>Array</code> of <code>String</code>s names for previously set values.<br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
console.log(await GM.listValues());<br />
</pre><br />
<br />
== See Also ==<br />
<br />
* [[GM.getValue]]<br />
* [[GM.setValue]]<br />
* [[GM.deleteValue]]<br />
<br />
[[Category:API_Reference|L]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7752MediaWiki:Monobook.css2022-10-15T15:59:46Z<p>Arantius: fix url</p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
margin-top: 40px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}<br />
<br />
body.mediawiki #p-logo a,<br />
body.mediawiki #p-logo a:hover {<br />
background-position: 0 0 !important;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM.registerMenuCommand&diff=7751GM.registerMenuCommand2022-08-17T14:45:08Z<p>Arantius: underscore to dot, 4.x style API, in examples</p>
<hr />
<div>== Description ==<br />
<br />
This method allows user scripts to add an item to the [[Greasemonkey_Manual:Monkey_Menu#The_Menu|User Script Commands]] menu.<br />
<br />
Compatibility: [[Version_history#4.11|Greasemonkey 4.11+]]<br />
<br />
== Syntax ==<br />
<br />
{{Function|GM.registerMenuCommand|caption, commandFunc, accessKey}}<br />
<br />
=== Arguments ===<br />
<br />
; <code>caption</code><br />
: <code>String</code> The caption to display on the menu item.<br />
; <code>commandFunc</code><br />
: <code>Function</code> The function to call when this menu item is selected by the user.<br />
; <code>accessKey</code><br />
: <code>String</code> A single character that can be used to select command when the menu is open. It should be a letter in the <code>caption</code>. [https://developer.mozilla.org/en/XUL/Attribute/accesskey]<br />
<br />
==== History ====<br />
<br />
This method existed in a similar but different form before Greasemonkey 4.0.<br />
<br />
== Returns ==<br />
<br />
<code>undefined</code><br />
<br />
== Examples ==<br />
<br />
<pre class='sample'>GM.registerMenuCommand("Hello, world (simple)", () => alert("Hello, world!"));</pre><br />
<br />
<pre class='sample'>function hello() { ... }<br />
GM.registerMenuCommand("Hello, world!", hello, "h");</pre><br />
<br />
[[Category:API_Reference|R]]<br />
<br />
== See Also ==<br />
<br />
The [[GM_config]] <code>@require</code> library is frequently used with <code>GM.registerMenuCommand</code>.</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7750MediaWiki:Monobook.css2021-11-19T14:02:45Z<p>Arantius: override new too-specific default theme</p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
margin-top: 40px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}<br />
<br />
body.mediawiki #p-logo a,<br />
body.mediawiki #p-logo a:hover {<br />
background-position: 0 0 !important;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:API&diff=7745Greasemonkey Manual:API2021-01-28T01:12:08Z<p>Arantius: GM.registerMenuCommand</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
This section of the manual will be short and sweet.<br />
As mentioned elsewhere, [[Greasemonkey]] provides several methods in its API to enhance the power of [[user script]]s.<br />
They are listed here, with a brief description, but each separate method has its own page with more in-depth information, please continue reading there!<br />
<br />
=== Headers ===<br />
; [[Metadata Block|Metadata Block]] : Information about the script such as its name or version is encoded into comments by the script author.<br />
; [[GM.info]] : Exposes this information (plus a bit more) to the user script.<br />
<br />
=== Values ===<br />
; [[GM.deleteValue]] : Deletes a value from chrome that was previously set.<br />
; [[GM.getValue]] : Retrieves stored values, see [[GM.setValue]] below.<br />
; [[GM.listValues]] : Retrieves an array of stored values' keys.<br />
; [[GM.setValue]] : Permanently stores a value under a key, later available via [[GM.getValue]].<br />
<br />
=== Resources ===<br />
; [[GM.getResourceUrl]] : Provides a URL for loading a <code>@resource</code>, such as an image, into the page.<br />
<br />
=== Other ===<br />
; [[GM.notification]] : Opens a notification dialog.<br />
; [[GM.openInTab]] : Opens a given URL in a new tab.<br />
; [[GM.registerMenuCommand]] : Adds an item to the "User Script Commands" section of the [[Monkey Menu]].<br />
; [[GM.setClipboard]] : Sets the contents of the clipboard.<br />
; [[GM.xmlHttpRequest]] : A variant of XMLHttpRequest, this method allows skipping use the same-origin policy, enabling complex mashups.<br />
; [[unsafeWindow]] : This object provides access to the raw JavaScript <code>window</code> scope of the content page. It is most commonly used to access JavaScript variables on the page.<br />
<br />
[[Category:API Reference|*{{FULLPAGENAME}}]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM_registerMenuCommand&diff=7744GM registerMenuCommand2021-01-28T01:10:56Z<p>Arantius: Arantius moved page GM registerMenuCommand to GM.registerMenuCommand: New GM-4 name with dot, not underscore.</p>
<hr />
<div>#REDIRECT [[GM.registerMenuCommand]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM.registerMenuCommand&diff=7743GM.registerMenuCommand2021-01-28T01:10:56Z<p>Arantius: Arantius moved page GM registerMenuCommand to GM.registerMenuCommand: New GM-4 name with dot, not underscore.</p>
<hr />
<div>== Description ==<br />
<br />
This method allows user scripts to add an item to the [[Greasemonkey_Manual:Monkey_Menu#The_Menu|User Script Commands]] menu.<br />
<br />
Compatibility: [[Version_history#4.11|Greasemonkey 4.11+]]<br />
<br />
== Syntax ==<br />
<br />
{{Function|GM.registerMenuCommand|caption, commandFunc, accessKey}}<br />
<br />
=== Arguments ===<br />
<br />
; <code>caption</code><br />
: <code>String</code> The caption to display on the menu item.<br />
; <code>commandFunc</code><br />
: <code>Function</code> The function to call when this menu item is selected by the user.<br />
; <code>accessKey</code><br />
: <code>String</code> A single character that can be used to select command when the menu is open. It should be a letter in the <code>caption</code>. [https://developer.mozilla.org/en/XUL/Attribute/accesskey]<br />
<br />
==== History ====<br />
<br />
This method existed in a similar but different form before Greasemonkey 4.0.<br />
<br />
== Returns ==<br />
<br />
<code>undefined</code><br />
<br />
== Examples ==<br />
<br />
<pre class='sample'>GM_registerMenuCommand("Hello, world (simple)", () => alert("Hello, world!"));</pre><br />
<br />
<pre class='sample'>function hello() { ... }<br />
GM_registerMenuCommand("Hello, world!", hello, "h");</pre><br />
<br />
[[Category:API_Reference|R]]<br />
<br />
== See Also ==<br />
<br />
The [[GM_config]] <code>@require</code> library is frequently used with <code>GM.registerMenuCommand</code>.</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM.registerMenuCommand&diff=7742GM.registerMenuCommand2021-01-28T01:10:34Z<p>Arantius: </p>
<hr />
<div>== Description ==<br />
<br />
This method allows user scripts to add an item to the [[Greasemonkey_Manual:Monkey_Menu#The_Menu|User Script Commands]] menu.<br />
<br />
Compatibility: [[Version_history#4.11|Greasemonkey 4.11+]]<br />
<br />
== Syntax ==<br />
<br />
{{Function|GM.registerMenuCommand|caption, commandFunc, accessKey}}<br />
<br />
=== Arguments ===<br />
<br />
; <code>caption</code><br />
: <code>String</code> The caption to display on the menu item.<br />
; <code>commandFunc</code><br />
: <code>Function</code> The function to call when this menu item is selected by the user.<br />
; <code>accessKey</code><br />
: <code>String</code> A single character that can be used to select command when the menu is open. It should be a letter in the <code>caption</code>. [https://developer.mozilla.org/en/XUL/Attribute/accesskey]<br />
<br />
==== History ====<br />
<br />
This method existed in a similar but different form before Greasemonkey 4.0.<br />
<br />
== Returns ==<br />
<br />
<code>undefined</code><br />
<br />
== Examples ==<br />
<br />
<pre class='sample'>GM_registerMenuCommand("Hello, world (simple)", () => alert("Hello, world!"));</pre><br />
<br />
<pre class='sample'>function hello() { ... }<br />
GM_registerMenuCommand("Hello, world!", hello, "h");</pre><br />
<br />
[[Category:API_Reference|R]]<br />
<br />
== See Also ==<br />
<br />
The [[GM_config]] <code>@require</code> library is frequently used with <code>GM.registerMenuCommand</code>.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7741Version history2021-01-28T01:05:36Z<p>Arantius: /* 4.11 */</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.11 ===<br />
<br />
January 27, 2021<br />
[https://www.greasespot.net/2021/01/greasemonkey-411-release.html]<br />
<br />
New features:<br />
<br />
* Support translation for <code>@name</code> and <code>@description</code> of user scripts. ({{GitTicket|3089}})<br />
* First party support for <code>GM.registerMenuCommand</code>. ({{GitTicket|3078}})<br />
<br />
=== 4.10 ===<br />
<br />
October 4, 2020<br />
[https://www.greasespot.net/2020/10/greasemonkey-410-release.html]<br />
<br />
(This version might also be called "4.10.0".)<br />
<br />
New features:<br />
<br />
* Accessibility enhancements: Appropriate metadata for and a script editor compatible with screen readers. ({{GitTicket|3058}}, {{GitTicket|3059}}, {{GitTicket|3060}}).<br />
<br />
Fixed bugs:<br />
<br />
* GM_xmlHttpRequest(): status is null when <code>readyState &lt; 4</code>. ({{GitTicket|3068}}).<br />
<br />
=== 4.9 ===<br />
<br />
June 12, 2019<br />
[https://www.greasespot.net/2019/06/greasemonkey-49-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Error handling scripts with certain names (bug added in v4.8). ({{GitTicket|3035}})<br />
<br />
=== 4.8 ===<br />
<br />
May 8, 2019<br />
[https://www.greasespot.net/2019/05/greasemonkey-48-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Don't re-enable scripts when saving in editor. ({{GitTicket|3008}})<br />
* "New user script" doesn't open a new tab. ({{GitTicket|2994}})<br />
* Log error message instead of "unavailable". ({{GitTicket|2939}})<br />
<br />
=== 4.7 ===<br />
<br />
August 28, 2018<br />
[https://www.greasespot.net/2018/08/greasemonkey-47-release.html]<br />
<br />
New features:<br><br />
<br />
* Automatic update support ({{GitTicket|2531}}) <br />
* Per-user include/exclude/match settings ({{GitTicket|2728}})<br />
<br />
=== 4.6 ===<br />
<br />
July 12, 2018<br />
[https://www.greasespot.net/2018/07/greasemonkey-46-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Repair GM.xmlHttpRequest() when fetching XML content. ({{GitTicket|2980}}) <br />
<br />
New features:<br />
<br />
* Added translations in several languages. <br />
* Users may specify global exclude patterns, where no user scripts will run. ({{GitTicket|2843}})<br />
<br />
=== 4.5 ===<br />
<br />
June 28, 2018<br />
[https://www.greasespot.net/2018/06/greasemonkey-45-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Better importing of partial or corrupted backups. ({{GitTicket|2966}})<br />
* Correctly display script data when switching from one to another. ({{GitTicket|2963}})<br />
* Correctly display uninstallation of even the last script. ({{GitTicket|2957}})<br />
* Correctly handle removal of an @icon from a script. ({{GitTicket|2910}}) <br />
<br />
New features:<br />
<br />
* The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. ({{GitTicket|2900}})<br />
<br />
=== 4.4 ===<br />
<br />
May 23, 2018<br />
[https://www.greasespot.net/2018/05/greasemonkey-44-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Scripts with icons or resources could sometimes fail to save, including when only the enabled/disabled status changes. ({{GitTicket|2943}})<br />
<br />
New features:<br />
<br />
* Script editor will prompt, when closing with unsaved edits. ({{GitTicket|2886}}) <br />
* Support for backup and restore of installed scripts. (With <i>very</i> limited support for importing ViolentMonkey and TamperMonkey backups.) ({{GitTicket|2747}})<br />
* Many improvements to the Monkey Menu. ({{GitTicket|2913}})<br />
<br />
=== 4.3 ===<br />
<br />
March 16, 2018<br />
[https://www.greasespot.net/2018/03/greasemonkey-43-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* The <code>open_in_background</code> feature of <code>GM.openInTab()</code> works correctly. ({{GitTicket|2672}})<br />
* Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. ({{GitTicket|2631}})<br />
<br />
New features:<br />
<br />
* Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <code>GM.xmlHttpRequest()</code>. ({{GitTicket|2723}})<br />
* Interface strings are translated into multiple languages. ({{GitTicket|2527}})<br />
* Greasemonkey will not install scripts while disabled. ({{GitTicket|2643}})<br />
* Monkey menu has new Firefox-native look and feel. ({{GitTicket|2805}})<br />
* New scalable icon. ({{GitTicket|2739}})<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7740MediaWiki:Monobook.css2020-10-05T00:45:25Z<p>Arantius: fix hover too</p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
margin-top: 40px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}<br />
<br />
body #p-logo a, body #p-logo a:hover {<br />
background-position: 0 0 !important;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7739MediaWiki:Monobook.css2020-10-05T00:44:49Z<p>Arantius: fix look after mediawiki upgrade</p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
margin-top: 40px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}<br />
<br />
body #p-logo a {<br />
background-position: 0 0 !important;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7738Version history2020-10-04T15:23:41Z<p>Arantius: /* 4.10 */</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.10 ===<br />
<br />
October 4, 2020<br />
[https://www.greasespot.net/2020/10/greasemonkey-410-release.html]<br />
<br />
(This version might also be called "4.10.0".)<br />
<br />
New features:<br />
<br />
* Accessibility enhancements: Appropriate metadata for and a script editor compatible with screen readers. ({{GitTicket|3058}}, {{GitTicket|3059}}, {{GitTicket|3060}}).<br />
<br />
Fixed bugs:<br />
<br />
* GM_xmlHttpRequest(): status is null when <code>readyState &lt; 4</code>. ({{GitTicket|3068}}).<br />
<br />
=== 4.9 ===<br />
<br />
June 12, 2019<br />
[https://www.greasespot.net/2019/06/greasemonkey-49-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Error handling scripts with certain names (bug added in v4.8). ({{GitTicket|3035}})<br />
<br />
=== 4.8 ===<br />
<br />
May 8, 2019<br />
[https://www.greasespot.net/2019/05/greasemonkey-48-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Don't re-enable scripts when saving in editor. ({{GitTicket|3008}})<br />
* "New user script" doesn't open a new tab. ({{GitTicket|2994}})<br />
* Log error message instead of "unavailable". ({{GitTicket|2939}})<br />
<br />
=== 4.7 ===<br />
<br />
August 28, 2018<br />
[https://www.greasespot.net/2018/08/greasemonkey-47-release.html]<br />
<br />
New features:<br><br />
<br />
* Automatic update support ({{GitTicket|2531}}) <br />
* Per-user include/exclude/match settings ({{GitTicket|2728}})<br />
<br />
=== 4.6 ===<br />
<br />
July 12, 2018<br />
[https://www.greasespot.net/2018/07/greasemonkey-46-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Repair GM.xmlHttpRequest() when fetching XML content. ({{GitTicket|2980}}) <br />
<br />
New features:<br />
<br />
* Added translations in several languages. <br />
* Users may specify global exclude patterns, where no user scripts will run. ({{GitTicket|2843}})<br />
<br />
=== 4.5 ===<br />
<br />
June 28, 2018<br />
[https://www.greasespot.net/2018/06/greasemonkey-45-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Better importing of partial or corrupted backups. ({{GitTicket|2966}})<br />
* Correctly display script data when switching from one to another. ({{GitTicket|2963}})<br />
* Correctly display uninstallation of even the last script. ({{GitTicket|2957}})<br />
* Correctly handle removal of an @icon from a script. ({{GitTicket|2910}}) <br />
<br />
New features:<br />
<br />
* The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. ({{GitTicket|2900}})<br />
<br />
=== 4.4 ===<br />
<br />
May 23, 2018<br />
[https://www.greasespot.net/2018/05/greasemonkey-44-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Scripts with icons or resources could sometimes fail to save, including when only the enabled/disabled status changes. ({{GitTicket|2943}})<br />
<br />
New features:<br />
<br />
* Script editor will prompt, when closing with unsaved edits. ({{GitTicket|2886}}) <br />
* Support for backup and restore of installed scripts. (With <i>very</i> limited support for importing ViolentMonkey and TamperMonkey backups.) ({{GitTicket|2747}})<br />
* Many improvements to the Monkey Menu. ({{GitTicket|2913}})<br />
<br />
=== 4.3 ===<br />
<br />
March 16, 2018<br />
[https://www.greasespot.net/2018/03/greasemonkey-43-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* The <code>open_in_background</code> feature of <code>GM.openInTab()</code> works correctly. ({{GitTicket|2672}})<br />
* Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. ({{GitTicket|2631}})<br />
<br />
New features:<br />
<br />
* Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <code>GM.xmlHttpRequest()</code>. ({{GitTicket|2723}})<br />
* Interface strings are translated into multiple languages. ({{GitTicket|2527}})<br />
* Greasemonkey will not install scripts while disabled. ({{GitTicket|2643}})<br />
* Monkey menu has new Firefox-native look and feel. ({{GitTicket|2805}})<br />
* New scalable icon. ({{GitTicket|2739}})<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:Monkey_Menu&diff=7736Greasemonkey Manual:Monkey Menu2019-12-14T22:51:56Z<p>Arantius: simplify, improve grammar/layout</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
== The Monkey Menu ==<br />
<br />
[[Image:Monkey-menu-4.0.png|left|thumb|160px|Greasemonkey's "Monkey Menu"]]<br />
<br />
As of Greasemonkey 4.0, the primary interface is through the "monkey menu", launched with the toolbar button.<br />
When enabled, the monkey is displayed in full color; when disabled, it is greyed out, and no [[user script]]s will run.<br />
<br />
The first item is a global enable/disable toggle for Greasemonkey as a whole.<br />
Disabling Greasemonkey with this control will stop all user script execution (on new pages).<br />
<br />
Following this is a list of user scripts which are configured to run on this tab, if any, in alphabetical order by name.<br />
Enabled scripts display normally while disabled scripts will be greyed out.<br />
Below the scripts for this tab are listed, in the same manner, any remaining installed scripts.<br />
Click any script in this list to be brought to the script management view.<br />
<br />
Beneath the script list is a shortcut for creating a new script, plus backup import and export items.<br />
<br />
At the bottom several helpful links are also present.<br />
<br clear=all><br />
<br />
=== The Script View ===<br />
<br />
[[Image:Script-detail.png|left|thumb|160px|Script detail view]]<br />
<br />
As mentioned above, all script management is also performed inside the monkey menu.<br />
Select any listed script in the main menu to open its detail view.<br />
<br />
Here there are four options: toggle this script to be enabled (will run) or disabled (will not run), open the editor for this script, and uninstall this script.<br />
The fourth option opens a sub-menu for setting detailed options for this user script.<br />
<br />
Finally, some of the user script's detailed information is displayed at the bottom.<br />
In this case: the description and currently installed version number, a link to the script home page, and the last time the script was (installed or) updated.<br />
<br clear=all><br />
<br />
[[Image:Script-options.png|left|thumb|160px|Script options view]]<br />
<br />
Within a script's detailed options view you may:<br />
<br />
* Enable or disable auto updating.<br />
* Manually check for updates now.<br />
* Add and remove custom @include, @exclude, and @match entries.<br />
<br />
The script's default settings are not replaced, the custom entries are added to them, unless you check "only use these".</div>Arantiushttps://wiki.greasespot.net/index.php?title=User_Script_Hosting&diff=7735User Script Hosting2019-12-14T22:49:04Z<p>Arantius: simplify, remove bad grammar/spelling</p>
<hr />
<div>== Greasy Fork ==<br />
<br />
https://greasyfork.org/<br />
<br />
Created by the maintainer of http://userstyles.org/.<br />
HTTPS is available and enforced by default.<br />
[https://github.com/JasonBarnabe/greasyfork Open source], hosted on GitHub.<br />
<br />
== OpenUserJS.org ==<br />
<br />
https://openuserjs.org/<br />
<br />
"The home of FOSS user scripts."<br />
Only HTTPS is available.<br />
[https://github.com/OpenUserJs/OpenUserJS.org Open source], hosted on GitHub.<br />
<br />
== Gist ==<br />
<br />
https://gist.github.com/<br />
<br />
Gist is GitHub's "paste" service, where any set of simple files can be pasted into a web form and saved.<br />
Gist files may be named. If they are given the <code>.user.js</code> suffix, then the raw link for the gist will serve perfectly as an install.<br />
HTTPS is available and used by default.<br />
<br />
== The Whole Internet ==<br />
<br />
Any server across the entire web may host user scripts.<br />
For Greasemonkey, the only requirement is that the (entire) URL ends with <code>.user.js</code> and that it is not served with a <code>text/html</code> content type.<br />
This even works in the fragment, so you can append <code>#.user.js</code> to any URL serving a script to trigger installation.<br />
Servers supporting HTTPS are best, in order to be compatible with Greasemonkey's built in update checker.<br />
<br />
=== pastebin ===<br />
<br />
https://pastebin.com/<br />
<br />
To make the URL end with <code>.user.js</code> you can add the fragment, as mentioned above.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:Monkey_Menu&diff=7731Greasemonkey Manual:Monkey Menu2019-09-29T14:39:41Z<p>Arantius: /* The Monkey Menu */</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
== The Monkey Menu ==<br />
<br />
[[Image:Monkey-menu-4.0.png|left|thumb|160px|Greasemonkey's "Monkey Menu"]]<br />
<br />
As of Greasemonkey 4.0, the primary interface is through the "monkey menu", launched with the toolbar button.<br />
When enabled, the monkey is displayed in full color; when disabled, it is greyed out, and no [[user script]]s will run.<br />
<br />
The first item is a global enable/disable toggle for Greasemonkey as a whole.<br />
Disabling Greasemonkey with this control will stop all user script execution (on new pages).<br />
<br />
Following this is a list of user scripts which are configured to run on this tab, if any, in alphabetical order by name.<br />
Enabled scripts display normally while disabled scripts will be greyed out.<br />
Below the scripts for this tab are listed, in the same manner, any remaining installed scripts.<br />
Click any script in this list to be brought to the script management view.<br />
<br />
Beneath the script list is a shortcut for creating a new script, plus backup import and export items.<br />
<br />
At the bottom several helpful links are also present.<br />
<br clear=all><br />
=== The Script View ===<br />
<br />
[[Image:Script-detail.png|left|thumb|160px|Script detail view]]<br />
<br />
As mentioned above, all script management is also performed inside the monkey menu.<br />
Select any listed script in the main menu to open its detail view.<br />
<br />
Here there are four options: toggle this script to be enabled (will run) or disabled (will not run), open the editor for this script, and uninstall this script.<br />
The fourth option opens a sub-menu for setting detailed options for this user script.<br />
<br />
Finally, some of the user script's detailed information is displayed at the bottom.<br />
In this case: the description and currently installed version number, a link to the script home page, and the last time the script was (installed or) updated.<br />
<br clear=all><br />
<br />
[[Image:Script-options.png|left|thumb|160px|Script options view]]<br />
<br />
Within a script's detailed options view you may:<br />
<br />
* Enable or disable auto updating.<br />
* Manually check for updates now.<br />
* Add and remove custom include, @exclude, and @match entries.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Monkey-menu-4.0.png&diff=7730File:Monkey-menu-4.0.png2019-09-29T14:39:00Z<p>Arantius: Arantius uploaded a new version of File:Monkey-menu-4.0.png</p>
<hr />
<div>The Monkey Menu, in Greasemonkey 4.0.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Monkey-menu-4.0.png&diff=7729File:Monkey-menu-4.0.png2019-09-29T14:36:38Z<p>Arantius: Arantius uploaded a new version of File:Monkey-menu-4.0.png</p>
<hr />
<div>The Monkey Menu, in Greasemonkey 4.0.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:Monkey_Menu&diff=7728Greasemonkey Manual:Monkey Menu2019-09-27T13:45:17Z<p>Arantius: update screenshots and language</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
== The Monkey Menu ==<br />
<br />
[[Image:Monkey-menu-4.0.png|left|thumb|160px|Greasemonkey's "Monkey Menu"]]<br />
<br />
As of Greasemonkey 4.0, the primary interface is through the "monkey menu", launched with the toolbar button.<br />
When enabled, the monkey is displayed in full color; when disabled, it is greyed out, and no [[user script]]s will run.<br />
<br />
The first item is a global enable/disable toggle for Greasemonkey as a whole.<br />
Disabling Greasemonkey with this control will stop all user script execution (on new pages).<br />
<br />
Following this is a list of user scripts which are configured to run on this tab, if any, in alphabetical order by name.<br />
Enabled scripts display normally while disabled scripts will be greyed out.<br />
Below the scripts for this tab are listed, in the same manner, any remaining installed scripts.<br />
Click any script in this list to be brought to the script management view.<br />
<br />
At the bottom several helpful links are also present.<br />
<br clear=all><br />
=== The Script View ===<br />
<br />
[[Image:Script-detail.png|left|thumb|160px|Script detail view]]<br />
<br />
As mentioned above, all script management is also performed inside the monkey menu.<br />
Select any listed script in the main menu to open its detail view.<br />
<br />
Here there are four options: toggle this script to be enabled (will run) or disabled (will not run), open the editor for this script, and uninstall this script.<br />
The fourth option opens a sub-menu for setting detailed options for this user script.<br />
<br />
Finally, some of the user script's detailed information is displayed at the bottom.<br />
In this case: the description and currently installed version number, a link to the script home page, and the last time the script was (installed or) updated.<br />
<br clear=all><br />
<br />
[[Image:Script-options.png|left|thumb|160px|Script options view]]<br />
<br />
Within a script's detailed options view you may:<br />
<br />
* Enable or disable auto updating.<br />
* Manually check for updates now.<br />
* Add and remove custom include, @exclude, and @match entries.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Script-options.png&diff=7727File:Script-options.png2019-09-27T13:43:39Z<p>Arantius: A single script's detailed options page.</p>
<hr />
<div>== Summary ==<br />
A single script's detailed options page.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Script-detail.png&diff=7726File:Script-detail.png2019-09-27T13:41:08Z<p>Arantius: Arantius uploaded a new version of File:Script-detail.png</p>
<hr />
<div>Script detail view in the monkey menu, as of Greasemonkey 4.0.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7724Version history2019-06-12T16:48:46Z<p>Arantius: /* 4.9 */</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.9 ===<br />
<br />
June 12, 2019<br />
[https://www.greasespot.net/2019/06/greasemonkey-49-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Error handling scripts with certain names (bug added in v4.8). ({{GitTicket|3035}})<br />
<br />
=== 4.8 ===<br />
<br />
May 8, 2019<br />
[https://www.greasespot.net/2019/05/greasemonkey-48-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Don't re-enable scripts when saving in editor. ({{GitTicket|3008}})<br />
* "New user script" doesn't open a new tab. ({{GitTicket|2994}})<br />
* Log error message instead of "unavailable". ({{GitTicket|2939}})<br />
<br />
=== 4.7 ===<br />
<br />
August 28, 2018<br />
[https://www.greasespot.net/2018/08/greasemonkey-47-release.html]<br />
<br />
New features:<br><br />
<br />
* Automatic update support ({{GitTicket|2531}}) <br />
* Per-user include/exclude/match settings ({{GitTicket|2728}})<br />
<br />
=== 4.6 ===<br />
<br />
July 12, 2018<br />
[https://www.greasespot.net/2018/07/greasemonkey-46-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Repair GM.xmlHttpRequest() when fetching XML content. ({{GitTicket|2980}}) <br />
<br />
New features:<br />
<br />
* Added translations in several languages. <br />
* Users may specify global exclude patterns, where no user scripts will run. ({{GitTicket|2843}})<br />
<br />
=== 4.5 ===<br />
<br />
June 28, 2018<br />
[https://www.greasespot.net/2018/06/greasemonkey-45-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Better importing of partial or corrupted backups. ({{GitTicket|2966}})<br />
* Correctly display script data when switching from one to another. ({{GitTicket|2963}})<br />
* Correctly display uninstallation of even the last script. ({{GitTicket|2957}})<br />
* Correctly handle removal of an @icon from a script. ({{GitTicket|2910}}) <br />
<br />
New features:<br />
<br />
* The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. ({{GitTicket|2900}})<br />
<br />
=== 4.4 ===<br />
<br />
May 23, 2018<br />
[https://www.greasespot.net/2018/05/greasemonkey-44-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Scripts with icons or resources could sometimes fail to save, including when only the enabled/disabled status changes. ({{GitTicket|2943}})<br />
<br />
New features:<br />
<br />
* Script editor will prompt, when closing with unsaved edits. ({{GitTicket|2886}}) <br />
* Support for backup and restore of installed scripts. (With <i>very</i> limited support for importing ViolentMonkey and TamperMonkey backups.) ({{GitTicket|2747}})<br />
* Many improvements to the Monkey Menu. ({{GitTicket|2913}})<br />
<br />
=== 4.3 ===<br />
<br />
March 16, 2018<br />
[https://www.greasespot.net/2018/03/greasemonkey-43-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* The <code>open_in_background</code> feature of <code>GM.openInTab()</code> works correctly. ({{GitTicket|2672}})<br />
* Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. ({{GitTicket|2631}})<br />
<br />
New features:<br />
<br />
* Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <code>GM.xmlHttpRequest()</code>. ({{GitTicket|2723}})<br />
* Interface strings are translated into multiple languages. ({{GitTicket|2527}})<br />
* Greasemonkey will not install scripts while disabled. ({{GitTicket|2643}})<br />
* Monkey menu has new Firefox-native look and feel. ({{GitTicket|2805}})<br />
* New scalable icon. ({{GitTicket|2739}})<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7723Version history2019-05-08T14:40:06Z<p>Arantius: /* 4.4 to 4.8 */</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.8 ===<br />
<br />
May 8, 2019<br />
[https://www.greasespot.net/2019/05/greasemonkey-48-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Don't re-enable scripts when saving in editor. ({{GitTicket|3008}})<br />
* "New user script" doesn't open a new tab. ({{GitTicket|2994}})<br />
* Log error message instead of "unavailable". ({{GitTicket|2939}})<br />
<br />
=== 4.7 ===<br />
<br />
August 28, 2018<br />
[https://www.greasespot.net/2018/08/greasemonkey-47-release.html]<br />
<br />
New features:<br><br />
<br />
* Automatic update support ({{GitTicket|2531}}) <br />
* Per-user include/exclude/match settings ({{GitTicket|2728}})<br />
<br />
=== 4.6 ===<br />
<br />
July 12, 2018<br />
[https://www.greasespot.net/2018/07/greasemonkey-46-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Repair GM.xmlHttpRequest() when fetching XML content. ({{GitTicket|2980}}) <br />
<br />
New features:<br />
<br />
* Added translations in several languages. <br />
* Users may specify global exclude patterns, where no user scripts will run. ({{GitTicket|2843}})<br />
<br />
=== 4.5 ===<br />
<br />
June 28, 2018<br />
[https://www.greasespot.net/2018/06/greasemonkey-45-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Better importing of partial or corrupted backups. ({{GitTicket|2966}})<br />
* Correctly display script data when switching from one to another. ({{GitTicket|2963}})<br />
* Correctly display uninstallation of even the last script. ({{GitTicket|2957}})<br />
* Correctly handle removal of an @icon from a script. ({{GitTicket|2910}}) <br />
<br />
New features:<br />
<br />
* The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. ({{GitTicket|2900}})<br />
<br />
=== 4.4 ===<br />
<br />
May 23, 2018<br />
[https://www.greasespot.net/2018/05/greasemonkey-44-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Scripts with icons or resources could sometimes fail to save, including when only the enabled/disabled status changes. ({{GitTicket|2943}})<br />
<br />
New features:<br />
<br />
* Script editor will prompt, when closing with unsaved edits. ({{GitTicket|2886}}) <br />
* Support for backup and restore of installed scripts. (With <i>very</i> limited support for importing ViolentMonkey and TamperMonkey backups.) ({{GitTicket|2747}})<br />
* Many improvements to the Monkey Menu. ({{GitTicket|2913}})<br />
<br />
=== 4.3 ===<br />
<br />
March 16, 2018<br />
[https://www.greasespot.net/2018/03/greasemonkey-43-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* The <code>open_in_background</code> feature of <code>GM.openInTab()</code> works correctly. ({{GitTicket|2672}})<br />
* Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. ({{GitTicket|2631}})<br />
<br />
New features:<br />
<br />
* Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <code>GM.xmlHttpRequest()</code>. ({{GitTicket|2723}})<br />
* Interface strings are translated into multiple languages. ({{GitTicket|2527}})<br />
* Greasemonkey will not install scripts while disabled. ({{GitTicket|2643}})<br />
* Monkey menu has new Firefox-native look and feel. ({{GitTicket|2805}})<br />
* New scalable icon. ({{GitTicket|2739}})<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Script-detail.png&diff=7722File:Script-detail.png2019-04-29T13:11:04Z<p>Arantius: Arantius uploaded a new version of File:Script-detail.png</p>
<hr />
<div>Script detail view in the monkey menu, as of Greasemonkey 4.0.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Metadata_Block&diff=7626Metadata Block2018-07-27T20:30:58Z<p>Arantius: /* @run-at */ fix broken formatting</p>
<hr />
<div>== Description ==<br />
<br />
The '''metadata block''' is a section of a [[user script]] that describes the script.<br />
It usually contains the script name, namespace, description, and [[include and exclude rules]].<br />
The metadata block appears in JavaScript line comments and may appear anywhere in the top level Greasemonkey code scope of the script, but is usually near the top of the file.<br />
<br />
If the metadata block includes a key that Greasemonkey does not understand, it will be ignored.<br />
<br />
== Syntax ==<br />
<br />
The metadata block must follow the format:<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @key value<br />
// ==/UserScript==<br />
</pre><br />
<br />
It must use line comments (<code>//</code>) like above, not block comments (<code>/* */</code>).<br />
Note that the opening <code>// ==UserScript==</code> and closing <code>// ==/UserScript==</code> must be precisely at the beginning of its line.<br />
Some keys may have multiple values.<br />
In all cases the key and value(s) are separated by whitespace.<br />
The closing <code>==/UserScript==</code> line should be at the end of the metadata block (not at the end of the script).<br />
<br />
=== @description ===<br />
<br />
Example:<br />
<pre class='sample'>// @description This script even does the laundry!</pre><br />
<br />
Just a brief summary of what the script does, presented to the user as the script is installed, and in the manage dialog.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages; see the [[#@name]] documentation for more detail.<br />
<br />
<!-- 4.x does not use this<br />
=== @downloadURL ===<br />
<br />
The URL to download this script from, when installing updates.<br />
<br />
<pre class='sample'>// @downloadURL https://www.example.com/myscript.user.js</pre><br />
<br />
Greasemonkey's default settings require this value to be secure (<tt><nowiki>https://...</nowiki></tt>) for updates to be applied.<br />
If it is not specified, the URL the script was originally installed from will be used.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
=== @exclude ===<br />
<br />
Examples: see @include<br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @exclude rules in a script.<br />
<br />
=== @grant ===<br />
<br />
See dedicated [[@grant]] page.<br />
<br />
=== @icon ===<br />
<br />
Example:<br />
<pre class='sample'>// @icon http://www.example.org/icon.png</pre><br />
<br />
The icon is, as of Greasemonkey 0.9.0, displayed in the script management interface.<br />
Almost any image will work, but a 32x32 pixel size is best.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
=== @include ===<br />
<br />
Examples:<br />
<pre class='sample'>// @include http://www.example.com/*<br />
// @include http://*<br />
// @include *</pre><br />
<br />
See [[Include and exclude rules]].<br />
There can be any number of @include rules in a script.<br />
<br />
=== @match ===<br />
<br />
Examples:<br />
<pre class='sample'>// @match https://www.example.com/*<br />
// @match http://*.example.com/*</pre><br />
<br />
The <code>@match</code> metadata imperative is very similar to <code>@include</code>, however it is safer.<br />
It sets more strict rules on what the <code>*</code> character means.<br />
<br />
For details, see the documentation on [https://developer.chrome.com/extensions/match_patterns Match Patterns] for Google Chrome.<br />
Chrome implemented <code>@match</code> first, and Greasemonkey has been designed to be compatible.<br />
<br />
=== @name ===<br />
<br />
Example:<br />
<pre class='sample'>// @name Example Script</pre><br />
<br />
The name of the script.<br />
This appears in the [[Greasemonkey_Manual:Monkey_Menu|monkey menu]], and is also the unique identifier of a script (within a [[#@namespace|namespace]]).<br />
If no name is provided, it will be derived from the file name.<br />
<br />
''As of Greasemonkey 2.2'': can be localized for multiple languages, for example:<br />
<br />
<pre class='sample'><br />
// @name Example Script<br />
// @name:cs Uživatelské skripty<br />
// @name:es-MX Ejemplo Script <br />
// @name:ru Пользовательские скрипты<br />
</pre><br />
<br />
Add a colon and the locale code, which is the [http://www.w3.org/WAI/ER/IG/ert/iso639.htm ISO 639] language code and optionally a hyphen and [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO 3166] country code, when disambiguation is necessary.<br />
When the user's browser is configured with the matching primary language, that value will be displayed instead.<br />
<br />
=== @namespace ===<br />
<br />
Example:<br />
<br />
<pre class='sample'>// @namespace http://www.example.com/gmscripts</pre><br />
<br />
The combination of namespace and name is the unique identifier for a Greasemonkey script.<br />
If a script is being installed, and a script with that same name '''and''' namespace already exists, it will be replaced by the new script.<br />
Otherwise, the new script is added to the set of installed scripts.<br />
A script author will usually put all of their scripts under one common namespace, and then assign each script a unique name.<br />
<br />
While the namespace is non-semantic, a URL is often used.<br />
Some authors use the common home page for the collection of scripts they have written.<br />
But remember, the namespace can be any unique value.<br />
<br />
=== @noframes ===<br />
<br />
Example:<br />
<pre class='sample'>// @noframes</pre><br />
<br />
When present, this imperative restricts the execution of the script.<br />
The script will run only in the top-level document, never in nested frames.<br />
It takes no arguments, it is either present or not present.<br />
This is off (scripts run in frames) by default.<br />
<br />
=== @require ===<br />
<br />
Example:<br />
<pre class='sample'>// @require http://www.example.com/example.js</pre><br />
<br />
There can be any number of @require keys in a script.<br />
Each @require is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@require</code> value(s) have been altered, these new values will be used (thus each <code>@require</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[:Category:@require Library]]<br />
* [[#Adding Resources]]<br />
<br />
=== @resource ===<br />
<br />
Example:<br />
<pre class='sample'>// @resource resourceName http://www.example.com/example.png</pre><br />
<br />
There can be any number of @resource keys in a script.<br />
<br />
While the resourceName is non-semantic, it should comply with JavaScript identifier restrictions.<br />
Each @resource must have a unique name.<br />
<br />
Each @resource is downloaded once, when the script is installed, and stored on the user's hard drive alongside the script.<br />
The URL specified may be relative to the URL the script is being installed from.<br />
<br />
These named resources may be accessed through [[GM_getResourceText]] and [[GM_getResourceURL]] respectively.<br />
<br />
Note that since [[Version_history#0.9.0|Greasemonkey 0.9.0]], if Greasemonkey detects that the <code>@resource</code> value(s) have been altered, these new values will be used (thus each <code>@resource</code> shall be re-downloaded).<br />
<br />
See also:<br />
<br />
* [[#Adding Resources]]<br />
<br />
=== @run-at ===<br />
<br />
:Compatibility: Limited support in [[Version_history#4.0_2|Greasemonkey 4.0]].<br />
<br />
Example:<br />
<pre class='sample'>// @run-at document-end</pre><br />
<br />
This key supports three values:<br />
<br />
; document-end<br />
: The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x.<br />
; document-start<br />
: The script will run before any document begins loading, thus before any scripts run or images load.<br />
; document-idle<br />
: The script will run after the page and all resources (images, style sheets, etc.) are loaded and page scripts have run.<br />
<br />
To detect if you are running at <code>document-start</code> time, check the value of <code>[https://developer.mozilla.org/en/DOM/document.readyState document.readyState]</code>.<br />
For example:<br />
<br />
<pre class="sample"><br />
if ('loading' == document.readyState) {<br />
alert("This script is running at document-start time.");<br />
} else {<br />
alert("This script is running with document.readyState: " + document.readyState);<br />
}<br />
</pre><br />
<br />
Scripts running at <code>document-end</code> will have the value <code>interactive</code> here.<br />
<br />
<!-- Not supported by 4.x<br />
=== @updateURL ===<br />
<br />
The URL that Greasemonkey will download when checking for script updates.<br />
<br />
<pre class='sample'>// @updateURL https://www.example.com/myscript.meta.js</pre><br />
<br />
This URL need only contain the metadata block.<br />
This value ''may'' be specified relative to the URL the script itself is downloaded from.<br />
<br />
If the [[#@version|@version]] specified here is newer than the installed version, an update will be offered to the user.<br />
<br />
It is '''unusual''' to specify this value.<br />
Most scripts should omit it.<br />
<br />
--><br />
<br />
=== @version ===<br />
<br />
Example:<br />
<pre class='sample'>// @version 1</pre><br />
<br />
<!-- Not yet supported by 4.x.<br />
This is the version of the script, which should be treated like a [https://developer.mozilla.org/en/install_manifests#version firefox extension version], and maintain the [https://developer.mozilla.org/en/Extension_Versioning%2c_Update_and_Compatibility same syntax].<br />
<br />
The version is used by the auto-update feature implemented in [[Version_history#0.9.12|Greasemonkey 0.9.12]]. When this value is set, and if the auto-update feature is enabled, Greasemonkey will check periodically for new versions of the script by downloading it again from the location where the installed version of the script was downloaded, and compare the @version value in the newly downloaded script with that value in the installed script.<br />
With previous versions of Greasemonkey 0.9.0+, this value was only used for display in the script management interface.<br />
<br />
--><br />
== Examples ==<br />
<br />
<pre class='sample'><br />
// ==UserScript==<br />
// @name My Script<br />
// @namespace http://www.example.com/gmscripts<br />
// @description Scripting is fun<br />
// @include http://www.example.com/*<br />
// @include http://www.example.org/*<br />
// @exclude http://www.example.org/foo<br />
// @require foo.js<br />
// @resource resourceName1 resource1.png<br />
// @resource resourceName2 http://www.example.com/resource2.png<br />
// @version 1.0<br />
// @icon http://www.example.net/icon.png<br />
// ==/UserScript==<br />
</pre><br />
<br />
== Adding Resources ==<br />
<br />
Two metadata imperatives allow downloading files (once, at install time) for efficient reference:<br />
First [[#@require|@require]], which includes a remote code resource.<br />
Second [[#@resource|@resource]], which makes a remote data resource available.<br />
<br />
It is possible to add a new entry for either of these values, while editing a script that is already installed.<br />
In either case, simply add the appropriate line and the referenced file will be downloaded and made available the next time the script runs.<br />
If you specify a relative URL, then it will be interpreted as relative to the the URL the script was originally downloaded from.<br />
<!--<br />
If there was no original download URL (i.e. a brand new script created from a local file), then this will work if you also create an appropriately named file alongside the script. (As of Greasemonkey 1.0.)<br />
--><br />
<br />
== See Also ==<br />
<br />
* [[API reference]]<br />
* [[Third-Party Libraries]]<br />
<br />
== Notes ==<br />
<br />
[[Category:API Reference]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7622MediaWiki:Monobook.css2018-07-27T18:52:28Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
margin-top: 40px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7618MediaWiki:Monobook.css2018-07-27T18:50:59Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
margin-left: 155px;<br />
}<br />
#p-cactions {<br />
left: 155px;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7614MediaWiki:Monobook.css2018-07-27T18:48:34Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content {<br />
font-size: 1rem;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7610MediaWiki:Monobook.css2018-07-27T18:48:08Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
#content p {<br />
font-size: 1rem;<br />
}<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:Monkey_Menu&diff=7606Greasemonkey Manual:Monkey Menu2018-07-27T18:46:52Z<p>Arantius: /* The Monkey Menu */</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
== The Monkey Menu ==<br />
<br />
[[Image:Monkey-menu-4.0.png|left|thumb|168px|Greasemonkey's "Monkey Menu"]]<br />
<br />
As of Greasemonkey 4.0, the primary interface is through the "monkey menu", launched with the toolbar button.<br />
When enabled, the monkey is displayed in full color; when disabled, it is greyed out, and no [[user script]]s will run.<br />
<br />
The first item is a global enable/disable toggle for Greasemonkey as a whole.<br />
Disabling Greasemonkey with this control will stop all user script execution (on new pages).<br />
<br />
Following this is a list of user scripts which are configured to run on this tab, if any, in alphabetical order by name.<br />
Enabled scripts display Disabled scripts will be greyed out.<br />
Below the scripts for this tab are listed, in the same manner, any remaining installed scripts.<br />
Click any script in this list to be brought to the script management view.<br />
<br />
At the bottom several helpful links are also present.<br />
<br clear=all><br />
=== The Script View ===<br />
<br />
[[Image:Script-detail.png|left|thumb|168px|Script detail view]]<br />
<br />
As mentioned above, all script management is also performed inside the monkey menu.<br />
Select any listed script in the main menu to open its detail view.<br />
<br />
Here there are four options: toggle this script to be enabled (will run) or disabled (will not run), open the editor for this script, and uninstall this script.<br />
The fourth option opens a sub-menu for setting detailed options for this user script.<br />
<br />
Finally, some of the user script's detailed information is displayed at the bottom.<br />
In this case: the description and currently installed version number.</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Script-detail.png&diff=7602File:Script-detail.png2018-07-27T18:45:18Z<p>Arantius: Arantius uploaded a new version of File:Script-detail.png</p>
<hr />
<div>Script detail view in the monkey menu, as of Greasemonkey 4.0.</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7597MediaWiki:Monobook.css2018-07-05T15:48:10Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
#column-one h3 {<br />
color: white;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=MediaWiki:Monobook.css&diff=7596MediaWiki:Monobook.css2018-07-05T15:47:16Z<p>Arantius: </p>
<hr />
<div>/* CSS placed here will affect users of the Monobook skin */<br />
<br />
.infobox {<br />
background-color:#F9F9F9;<br />
border:1px solid #AAAAAA;<br />
clear:right;<br />
color:black;<br />
float:right;<br />
margin-bottom:0.5em;<br />
margin-left:1em;<br />
padding:0.2em;<br />
}<br />
.infobox td, .infobox th {<br />
padding: 0 0.5em;<br />
vertical-align:top;<br />
}<br />
.infobox th {<br />
background-color: #CEE0F2;<br />
}<br />
<br />
/* 0.8 look */<br />
body {<br />
background-color: #363636;<br />
background-image: url(//wiki.greasespot.net/skins/common/images/pak-headbg.png);<br />
background-repeat: no-repeat;<br />
}<br />
body div#globalWrapper {<br />
background: none;<br />
}<br />
#column-one {<br />
padding-top: 180px;<br />
}<br />
.portlet h5 {<br />
color: white;<br />
}<br />
<br />
#p-personal li a {<br />
color: #007bd1;<br />
}</div>Arantiushttps://wiki.greasespot.net/index.php?title=User_Script_Hosting&diff=7595User Script Hosting2018-05-31T18:30:12Z<p>Arantius: Remove a warning about an issue which no longer applies in the latest release.</p>
<hr />
<div>== Greasy Fork ==<br />
<br />
https://greasyfork.org/<br />
<br />
Created by the maintainer of http://userstyles.org/.<br />
HTTPS is available and enforced by default.<br />
[https://github.com/JasonBarnabe/greasyfork Open source], hosted on GitHub.<br />
<br />
== OpenUserJS.org ==<br />
<br />
https://openuserjs.org/<br />
<br />
"The home of FOSS user scripts."<br />
Only HTTPS is available.<br />
[https://github.com/OpenUserJs/OpenUserJS.org Open source], hosted on GitHub.<br />
<br />
== Gist ==<br />
<br />
https://gist.github.com/<br />
<br />
Gist is GitHub's "paste" service, where any set of simple files can be pasted into a web form and saved.<br />
Gist files may be named. If they are given the <code>.user.js</code> suffix, then the raw link for the gist will serve perfectly as an install.<br />
HTTPS is available and used by default.<br />
<br />
== The Whole Internet ==<br />
<br />
Any server across the entire web may host user scripts.<br />
For Greasemonkey, the only requirement is that the (entire) URL ends with <code>.user.js</code> and that it is not served with a <code>text/html</code> content type.<br />
Servers supporting HTTPS are best, in order to be compatible with Greasemonkey's built in update checker.</div>Arantiushttps://wiki.greasespot.net/index.php?title=GM.notification&diff=7594GM.notification2018-04-18T16:25:01Z<p>Arantius: Created page with "== Description == This method opens the specified URL in a new tab. == Syntax == {{Function|GM.notification|text, title, image, onclick}} Compatibility: Version_history#..."</p>
<hr />
<div>== Description ==<br />
<br />
This method opens the specified URL in a new tab.<br />
<br />
== Syntax ==<br />
<br />
{{Function|GM.notification|text, title, image, onclick}}<br />
<br />
Compatibility: [[Version_history#4.0_2|Greasemonkey 4.0+]]<br />
<br />
=== Arguments ===<br />
<br />
; <code>text</code><br />
: <code>String</code> The main notification text.<br />
; <code>title</code><br />
: <code>String</code> The title of the notification.<br />
; <code>image</code><br />
: <code>String</code> Optional: The URL for an image to display in the dialog. If not provided, the Greasemonkey logo by default.<br />
; <code>onclick</code><br />
: <code>Function</code> Optional: callback, triggered when the notification's button is clicked.<br />
<br />
== Returns ==<br />
<br />
<code>undefined</code><br />
<br />
== Examples ==<br />
<br />
<pre class='sample'><br />
GM.notification("A new widget is available at the frobber.", "New widget!");<br />
</pre><br />
<br />
The appearance is platform specific, but could be for example:<br />
<br />
[[File:gm-notification.png]]<br />
<br />
[[Category:API_Reference|O]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=File:Gm-notification.png&diff=7593File:Gm-notification.png2018-04-18T16:24:12Z<p>Arantius: </p>
<hr />
<div></div>Arantiushttps://wiki.greasespot.net/index.php?title=Greasemonkey_Manual:API&diff=7592Greasemonkey Manual:API2018-04-18T16:17:29Z<p>Arantius: GM.notification</p>
<hr />
<div>__NOTOC__<br />
{{Greasemonkey Manual TOC}}<br />
<br />
This section of the manual will be short and sweet.<br />
As mentioned elsewhere, [[Greasemonkey]] provides several methods in its API to enhance the power of [[user script]]s.<br />
They are listed here, with a brief description, but each separate method has its own page with more in-depth information, please continue reading there!<br />
<br />
=== Headers ===<br />
; [[Metadata Block|Metadata Block]] : Information about the script such as its name or version is encoded into comments by the script author.<br />
; [[GM.info]] : Exposes this information (plus a bit more) to the user script.<br />
<br />
=== Values ===<br />
; [[GM.deleteValue]] : Deletes a value from chrome that was previously set.<br />
; [[GM.getValue]] : Retrieves stored values, see [[GM.setValue]] below.<br />
; [[GM.listValues]] : Retrieves an array of stored values' keys.<br />
; [[GM.setValue]] : Permanently stores a value under a key, later available via [[GM.getValue]].<br />
<br />
=== Resources ===<br />
; [[GM.getResourceUrl]] : Provides a URL for loading a <code>@resource</code>, such as an image, into the page.<br />
<br />
=== Other ===<br />
; [[GM.notification]] : Opens a notification dialog.<br />
; [[GM.openInTab]] : Opens a given URL in a new tab.<br />
; [[GM.setClipboard]] : Sets the contents of the clipboard.<br />
; [[GM.xmlHttpRequest]] : A variant of XMLHttpRequest, this method allows skipping use the same-origin policy, enabling complex mashups.<br />
; [[unsafeWindow]] : This object provides access to the raw JavaScript <code>window</code> scope of the content page. It is most commonly used to access JavaScript variables on the page.<br />
<br />
[[Category:API Reference|*{{FULLPAGENAME}}]]</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7591Version history2018-03-16T18:20:08Z<p>Arantius: /* 4.3 */</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.3 ===<br />
<br />
March 16, 2018<br />
[https://www.greasespot.net/2018/03/greasemonkey-43-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* The <code>open_in_background</code> feature of <code>GM.openInTab()</code> works correctly. ({{GitTicket|2672}})<br />
* Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. ({{GitTicket|2631}})<br />
<br />
New features:<br />
<br />
* Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <code>GM.xmlHttpRequest()</code>. ({{GitTicket|2723}})<br />
* Interface strings are translated into multiple languages. ({{GitTicket|2527}})<br />
* Greasemonkey will not install scripts while disabled. ({{GitTicket|2643}})<br />
* Monkey menu has new Firefox-native look and feel. ({{GitTicket|2805}})<br />
* New scalable icon. ({{GitTicket|2739}})<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Version_history&diff=7589Version history2018-01-19T16:20:43Z<p>Arantius: /* 4.2 */ style</p>
<hr />
<div><div style="float:right; margin-left:1em;" class="hidenumbers">__TOC__</div><br />
<br />
Also see all releases [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/ at addons.mozilla.org].<br />
<br />
== 4.0 ==<br />
<br />
=== 4.2 ===<br />
<br />
January 19, 2018<br />
[https://www.greasespot.net/2018/01/greasemonkey-42-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Use of the [[Magic TLD]] is now reflected correctly in the monkey menu user script list. ({{GitTicket|2795}})<br />
* Privileged API handlers will now refuse to continue without the appropriate [[@grant]] entry. ({{GitTicket|2777}})<br />
* Native <code>xmlHttpRequest</code> now handles URLs relative to the page correctly. ({{GitTicket|2771}})<br />
* When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. ({{GitTicket|2652}})<br />
<br />
New features:<br />
<br />
* Firefox for Android is marked compatible.<br />
* Improved keyboard accessibility of the [[Monkey Menu]]. ({{GitTicket|2794}})<br />
* Added a save button to the user script editor (<code>Ctrl-S</code> still works). ({{GitTicket|2785}})<br />
* User scripts will execute on local <code>file:///</code>s. ({{GitTicket|2693}})<br />
* The script install dialog appears in a dialog, not a browser tab. ({{GitTicket|2641}})<br />
* When the <code>==UserScript==</code> block contains an unrecognized key, the entire key name is indicated in the warning message. ({{GitTicket|2684}})<br />
<br />
=== 4.1 ===<br />
<br />
December 11, 2017<br />
[https://www.greasespot.net/2017/12/greasemonkey-41-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* For GM.xmlHttpRequest, set the finalURL ({{GitTicket|2692}}) and support onprogress ({{GitTicket|2712}}).<br />
* Update @match handling to be consistent with pre-existing behavior. ({{GitTicket|2673}}, {{GitTicket|2715}})<br />
* Handle user scripts that end with a comment. ({{GitTicket|2670}})<br />
* Fix changing @noframes in the user script editor. ({{GitTicket|2637}})<br />
<br />
New features:<br />
<br />
* The "save" action in the user script editor is platform natural. ({{GitTicket|2690}})<br />
* Add a "new script" feature, for creating a new user script from scratch. ({{GitTicket|2645}})<br />
* The script list in the monkey menu is split into "active" and "inactive" sections. ({{GitTicket|2585}})<br />
<br />
=== 4.0 ===<br />
<br />
November 2, 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-4-announcement.html]<br />
<br />
Greasemonkey was rewritten almost completely from scratch, based on [https://wiki.mozilla.org/WebExtensions WebExtensions] ("a new browser extension API; a cross-browser system for developing extensions").<br />
Due to the hard deadline that Firefox 57 (which supports only the WebExtensions API) Greasemonkey 4.0 was released with several features missing.<br />
Further releases in the (near) future should add most or all of Greasemonkey's older features back.<br />
<br />
== 3.0 ==<br />
<br />
=== 3.13 through 3.17 ===<br />
<br />
Several small revisions were rapidly made, all oriented towards improving the migration of data into Greasemonkey 4.0.<br />
<br />
=== 3.12 ===<br />
<br />
September 19 2017<br />
[http://www.greasespot.net/2017/09/greasemonkey-312-release.html]<br />
<br />
Fixed bugs:<br />
* Repair rare breakage in GM_getValue/GM_setValue. ({{GitTicket|2506}})<br />
<br />
New Features:<br />
* Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. ({{GitTicket|2551}})<br />
<br />
=== 3.11 ===<br />
<br />
April 25, 2017<br />
[http://www.greasespot.net/2017/04/greasemonkey-311-release.html]<br />
<br />
Fixed bugs:<br />
* Repair broken language check. ({{GitTicket|2488}})<br />
* Compatibility with new strict process sandbox. ({{GitTicket|2485}})<br />
<br />
=== 3.10 ===<br />
<br />
February 22, 2017<br />
[http://www.greasespot.net/2017/02/greasemonkey-310-release.html]<br />
<br />
Fixed bugs:<br />
* Fix compatibility with Firefox 54. ({{GitTicket|2480}})<br />
<br />
=== 3.9 ===<br />
<br />
August 19, 2016<br />
[http://www.greasespot.net/2016/08/greasemonkey-39-release.html]<br />
<br />
Feature Enhancements:<br />
* Improve the performance of <code>GM_getValue</code>/<code>GM_setValue</code>. ({{GitTicket|2197}}, {{GitTicket|2025}})<br />
* Add a rich tooltip to the Greasemonkey toolbar button. ({{GitTicket|2377}}, {{GitTicket|2418}})<br />
* <code>GM_getResourceText</code> supports a second (responseType) parameter, for better compatibility with binary files. ({{GitTicket|2376}})<br />
<br />
Fixed bugs:<br />
<br />
* Global exclude rules no longer require a Firefox restart to take effect. ({{GitTicket|2410}})<br />
* A web page whose url ends in <code>.user.js</code> could fail to load. ({{GitTicket|2407}})<br />
* A script whose name ends in <code>.db</code> could fail. ({{GitTicket|2402}})<br />
<br />
=== 3.8 ===<br />
<br />
April 28, 2016<br />
[http://www.greasespot.net/2016/04/greasemonkey-38-release.html]<br />
<br />
Feature enhancements:<br />
* Scripts can now detect whether they are operating in Private Mode or not. ({{GitTicket|2199}})<br />
<br />
Fixed bugs:<br />
* Corrected a situation wherein some scripts could be executed twice. ({{GitTicket|2371}})<br />
* Improved reliability of Sync service. ({{GitTicket|2351}})<br />
* Improved handling of HTML pages served with <code>.user.js</code> URLs. ({{GitTicket|2280}})<br />
<br />
=== 3.7 ===<br />
<br />
February 19, 2016<br />
[http://www.greasespot.net/2016/02/greasemonkey-37-release.html]<br />
<br />
Feature enhancements:<br />
* Added a (subtle) indicator for scripts that can not / will not download updates. ({{GitTicket|2358}})<br />
<br />
Fixed bugs:<br />
* Using @resource URLs for images could fail to work in multi-process Firefox. ({{GitTicket|2341}})<br />
* Invalid metadata in the template prevented the "New Script" feature. ({{GitTicket|2336}})<br />
* Drag-and-drop install of a script could launch two install windows. ({{GitTicket|2292}})<br />
<br />
=== 3.6 ===<br />
<br />
November 20, 2015<br />
[http://www.greasespot.net/2015/11/greasemonkey-36-release.html]<br />
<br />
Feature enhancements:<br />
* Better support for scripts with a very large number of <code>@include</code>/<code>@exclude</code>/<code>@match</code> rules. ({{GitTicket|2318}})<br />
* Display a notification to the user when there is a problem parsing an edited script. ({{GitTicket|2319}})<br />
* In <code>GM_info</code> the serving URL for an <code>@resource</code> is listed. ({{GitTicket|2281}})<br />
* Added support for <code>@run-at document-idle</code>. ({{GitTicket|2109}})<br />
<br />
Fixed bugs:<br />
* Repair compatibility of <code>@resource</code> files and certain serving contexts for recent versions of Firefox. ({{GitTicket|2326}})<br />
* Correctly refresh files when changing (e.g.) <code>@require</code> lines in a script. ({{GitTicket|2311}})<br />
* Repaired binary behavior of <code>GM_xmlhttpRequest</code>. ({{GitTicket|2265}})<br />
<br />
=== 3.5 ===<br />
<br />
October 20, 2015<br />
[http://www.greasespot.net/2015/10/greasemonkey-35-release.html]<br />
<br />
Feature enhancements:<br />
* Restored "more" link in Add-ons Manager, add metadata support to fill it. ({{GitTicket|1944}})<br />
* The Options window can (usually) be resized. ({{GitTicket|2194}})<br />
* Allow scripting about:reader pages. ({{GitTicket|2195}})<br />
* Various performance/efficiency enhancements. ({{GitTicket|2243}}, {{GitTicket|2259}})<br />
* Allow .cmd file as editor on Windows. ({{GitTicket|2271}})<br />
<br />
<br />
Fixed bugs:<br />
* The GM_getValue API behavior matches the documentation. ({{GitTicket|2151}}) <br />
* Repaired the Greasemonkey menus. ({{GitTicket|2276}})<br />
<br />
<br />
=== 3.4.1 ===<br />
<br />
September 17, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-341-release.html]<br />
<br />
Fixed bugs:<br />
* Address data corruption bug that could incorrectly uninstall scripts being updated. ({{GitTicket|2274}})<br />
<br />
=== 3.4 ===<br />
<br />
September 11, 2015<br />
[http://www.greasespot.net/2015/09/greasemonkey-34-release.html]<br />
<br />
Feature enhancements:<br />
* Added features to GM_openInTab. ({{GitTicket|2257}})<br />
* Improved performance and memory efficiency. ({{GitTicket|2225}}, {{GitTicket|2237}})<br />
* Remember user script sort order. ({{GitTicket|2128}})<br />
<br />
<br />
Fixed bugs:<br />
* Work around a Firefox bug that broke GM_openInTab when e10s is not enabled. ({{GitTicket|2234}})<br />
* Fixed a bug in the "view script source" feature preventing the tab from opening correctly. ({{GitTicket|2202}})<br />
* Correctly handle uninstalled scripts and user @match preferences through Sync. ({{GitTicket|2186}}, {{GitTicket|2188}})<br />
* Improved the behavior of cloneInto to work in more cases. ({{GitTicket|2070}})<br />
* Scripts that are run-at document-start will run on about:blank. ({{GitTicket|2041}})<br />
<br />
=== 3.3 ===<br />
<br />
July 24, 2015<br />
[http://www.greasespot.net/2015/07/greasemonkey-33-release.html]<br />
<br />
Feature enhancements:<br />
* Allow the script preference window flex size, especially useful for smaller displays. ({{GitTicket|2191}})<br />
* The script preference editor now allows editing @match (as well as @include and @exclude like always). ({{GitTicket|2126}})<br />
* GM_getResourceURL is now compatible with favicons.&nbsp; ({{GitTicket|1955}})<br />
* Web sites should not be able to detect that Greasemonkey is installed. ({{GitTicket|1787}})<br />
<br />
Fixed bugs:<br />
* Web pages whose URLs end with .user.js should load properly. ({{GitTicket|2178}})<br />
* Repair memory leak related to GM_registerMenuCommand().&nbsp; ({{GitTicket|2067}})<br />
<br />
=== 3.2 ===<br />
<br />
May 29, 2015<br />
[http://www.greasespot.net/2015/05/greasemonkey-32-release.html]<br />
<br />
Feature enhancements:<br />
* The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. ({{GitTicket|2105}}, {{GitTicket|2106}}, {{GitTicket|2107}})<br />
* The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. ({{GitTicket|2045}})<br />
* Script updates always check the server, never using the browser cache. ({{GitTicket|1878}})<br />
* Now @match rules can be customized in script settings. ({{GitTicket|1703}})<br />
<br />
Fixed bugs:<br />
* More consistently send cookies with GM_xmlhttpRequest(). ({{GitTicket|2181}})<br />
* Calling abort() on the result of GM_xmlhttpRequest() should no longer cause errors. ({{GitTicket|2154}})<br />
* Fix GM_registerMenuCommand() for @run-at document-start scripts. ({{GitTicket|2139}})<br />
* Restore operation of the GM_info.version property. ({{GitTicket|2132}})<br />
* The GM_xmlhttpRequest() API will no longer leak cookies from the regular session, when operating in a Private Browsing session. ({{GitTicket|2050}})<br />
* Checking for add-on updates will enforce a server timeout, so it does not potentially hang forever. ({{GitTicket|2029}})<br />
* Repair navigation to HTML pages whose URL happens to end in .user.js. ({{GitTicket|1998}})<br />
<br />
=== 3.1 ===<br />
<br />
March 20, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-31-release.html]<br />
<br />
Fixed bugs:<br />
* Fix @noframes feature. ({{GitTicket|2110}})<br />
* Fix injecting scripts into about:blank. ({{GitTicket|2108}})<br />
* Display localized script name/description correctly. ({{GitTicket|2102}})<br />
* Correct GM_openInTab() to only open one tab. ({{GitTicket|2094}})<br />
* Repair default script editor. ({{GitTicket|2073}}) <br />
<br />
=== 3.0 ===<br />
<br />
March 13, 2015<br />
[http://www.greasespot.net/2015/03/greasemonkey-30-release.html]<br />
<br />
No intentional user visible changes.<br />
Internally rewritten for multi process Firefox compatibility.<br />
<br />
== 2.0 ==<br />
<br />
=== 2.3 ===<br />
<br />
October 29, 2014<br />
[http://www.greasespot.net/2014/10/greasemonkey-23-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added @noframes metadata imperative. ({{GitTicket|1859}})<br />
<br />
Fixed bugs:<br />
<br />
* Improved disk usage of script values' SQLite databases. ({{GitTicket|2036}})<br />
* Fixed the responseType feature for GM_xmlhttpRequest(). ({{GitTicket|2032}})<br />
* Fixed a null variable reference in Firefox Sync. ({{GitTicket|2014}}, {{GitTicket|2017}})<br />
<br />
=== 2.2 ===<br />
<br />
August 28, 2014<br />
[http://www.greasespot.net/2014/08/greasemonkey-22-release.html]<br />
<br />
Enhancements and changes:<br />
<br />
* Added a "New User Script" button into the Add-ons Manager. ({{GitTicket|1972}})<br />
* Scripts will always execute (or not) based on their ''original'' URL, before any possible <tt>history.replaceState()</tt> changes by the content scripts. ({{GitTicket|1970}})<br />
* Script [[Metadata_Block#.40name|@name and @description]] values can be localized for multiple languages. ({{GitTicket|1963}})<br />
<br />
Fixed bugs:<br />
<br />
* User scripts will never execute with chrome privileges. ({{GitTicket|1988}})<br />
* Improved Drag-and-Drop into the Add-ons Manager. ({{GitTicket|1980}})<br />
* Correctly show all Unicode characters when selecting View Script Source. ({{GitTicket|1940}})<br />
* Repair GM_xmlhttpRequest() for XML type responses. ({{GitTicket|1937}})<br />
* Fix the position of tabs created with GM_openInTab(). ({{GitTicket|1897}})<br />
* Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. ({{GitTicket|1875}})<br />
* Fixed an error when pressing cancel in the install dialog. ({{GitTicket|1862}})<br />
* GM_log() no longer truncate at NUL bytes. ({{GitTicket|1061}})<br />
<br />
=== 2.1 ===<br />
<br />
July 21, 2014<br />
[http://www.greasespot.net/2014/07/greasemonkey-21-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Fix script updates. ({{GitTicket|1938}})<br />
* Repair GM_xmlhttpRequest(), broken in 2.0. ({{GitTicket|1937}})<br />
* A script will no longer be overwritten by an @require of the same name. ({{GitTicket|1906}})<br />
* Repaired the functionality of the "Undo" button after uninstalling a script. ({{GitTicket|1898}})<br />
<br />
=== 2.0 ===<br />
<br />
Jun 17, 2014<br />
[http://www.greasespot.net/2014/06/greasemonkey-20-release.html]<br />
<br />
'''Backwards incompatible''' changes:<br />
<br />
* For stability, reliability, and security the privileged sandbox has been updated to match the new [https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-on-sdk/ changes to unsafeWindow for the Add-on SDK]. '''In order to write values to unsafeWindow you will need to use the new methods''' <code>cloneInto()</code>, <code>exportFunction()</code>, and/or <code>createObjectIn()</code>.<br />
* The <code>@grant none</code> mode is now the default, and grants will no longer be implied when not explicitly provided.&nbsp; See the post [http://www.greasespot.net/2014/06/sandbox-api-changes-in-greasemonkey-20.html Sandbox API Changes in Greasemonkey 2.0] for more detail.<br />
<br />
If your script already specifies <code>@grant none</code>, these changes will not affect you.&nbsp; If your script does not interact with <code>unsafeWindow</code>, these changes will not affect you.<br />
<br />
Otherwise, these changes will break some scripts.&nbsp; These scripts will need to be updated to work correctly again.&nbsp; We don't take breaking changes lightly.&nbsp; It's been just under two years since version 1.0 when we last introduced major changes, and it these particular changes are both important and valuable in the long run.<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey will only use explicit <code>@grant</code> metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.&nbsp; Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) ({{GitTicket|1908}})<br />
* <code>GM_addStyle()</code> now returns the created element. ({{GitTicket|1892}})<br />
* Update checks will attempt to read a <code>.meta.js</code> file for scripts installed from any site on the internet.&nbsp; ({{GitTicket|1885}})<br />
* Remove all references to the now defunct userscripts.org website. ({{GitTicket|1884}})<br />
* Privileged scripts' event listeners will run, even when content JavaScript is disabled. ({{GitTicket|1882}})<br />
* Turn on Firefox Sync support by default. ({{GitTicket|1857}}) <br />
* <code>GM_xmlhttpRequest()</code> can set the <code>resposeType</code> parameter on the request. ({{GitTicket|1834}})<br />
<br />
Fixed bugs:<br />
<br />
* A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.&nbsp; ({{GitTicket|1930}})<br />
* Fixed a bug when parsing @match rules which could destroy configuration state. ({{GitTicket|1912}})<br />
* A bug fix for the @match metadata, to correctly match bare domain names. ({{GitTicket|1899}}) <br />
* The database where persistent values are stored correctly vacuums its unused space. ({{GitTicket|1879}})<br />
* A relative @require URL will now work correctly. ({{GitTicket|1874}})<br />
* The options window will flex to fit on small (or large) screens. ({{GitTicket|1871}}) <br />
* Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. ({{GitTicket|1852}}, {{GitTicket|1870}})<br />
<br />
== 1.0 ==<br />
<br />
=== 1.15 ===<br />
<br />
February 11, 2014<br />
[http://www.greasespot.net/2014/02/greasemonkey-115-release.html]<br />
<br />
Enhancements:<br />
<br />
* Greasemonkey sends headers when making script update checks. ({{GitTicket|1824}})<br />
* Allow correct installation of even scripts with invalid duplicate [http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 UTF-8 BOMs]. ({{GitTicket|1823}})<br />
<br />
Fixed bugs:<br />
<br />
* Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. ({{GitTicket|#1869}})<br />
* Fixed enable/disable button state for user scripts in Add-ons Manager. ({{GitTicket|#1811}})<br />
<br />
=== 1.14 ===<br />
<br />
January 15, 2014<br />
[http://www.greasespot.net/2014/01/greasemonkey-114-release.html]<br />
<br />
Fixed bugs:<br />
<br />
* Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). ({{GitTicket|1833}})<br />
<br />
=== 1.13 ===<br />
<br />
December, 2013<br />
[http://www.greasespot.net/2013/12/greasemonkey-113-release.html]<br />
<br />
Enhancements:<br />
<br />
* All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. ({{GitTicket|1800}})<br />
* All stored script values (GM_setValue) move from the (soon to be limited) Firefox global preferences store into a per-script database, so that this limit will not break scripts. ({{GitTicket|1798}})<br />
* Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. ({{GitTicket|1796}})<br />
* User script installation will continue if the @icon is unavailable. ({{GitTicket|1793}})<br />
* Firefox Sync support, to keep installed User Scripts the same on all your browsers. ({{GitTicket|1573}})<br />
<br />
Fixed bugs:<br />
<br />
* We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. ({{GitTicket|1828}})<br />
* Fix saving the new script template value. ({{GitTicket|1808}})<br />
* Keep the Add-ons Manager display up to date as scripts change. ({{GitTicket|1804}})<br />
<br />
=== 1.12 ===<br />
<br />
August 15, 2013<br />
[http://www.greasespot.net/2013/08/greasemonkey-112-release.html]<br />
<br />
Enhancements:<br />
<br />
* The template for the New Script... feature is now customizable ({{GitTicket|1753}})<br />
* Users can now force a remote update even for scripts where it was otherwise intentionally disabled. ({{GitTicket|1743}})<br />
<br />
Fixed bugs:<br />
<br />
* A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. ({{GitTicket|1778}})<br />
* When using Scratchpad as a script editor, the run features are hidden. (They don't work correctly for user scripts; reload the page to rerun the script.) ({{GitTicket|1771}})<br />
* Script updates will detect Coral CDN failures and use direct checks instead. ({{GitTicket|1722}})<br />
<br />
=== 1.11 ===<br />
<br />
July 18, 2013<br />
[http://www.greasespot.net/2013/07/greasemonkey-111-release.html]<br />
<br />
Enhancements:<br />
<br />
* The GM_info object now has a scriptSource property, like Tampermonkey. ({{GitTicket|1738}})<br />
<br />
Fixed bugs:<br />
<br />
* Scripts will no longer run on data: scheme URLs. This is a security enhancement. ({{GitTicket|1767}})<br />
* Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. ({{GitTicket|1762}})<br />
* Fix GM_openInTab() behavior when moving tabs across windows. ({{GitTicket|1758}})<br />
<br />
=== 1.10 ===<br />
<br />
June 20, 2013<br />
[http://www.greasespot.net/2013/06/greasemonkey-110-release.html]<br />
<br />
Enhancements:<br />
<br />
* Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. ({{GitTicket|1727}})<br />
* Added a context parameter to GM_xmlhttpRequest(). ({{GitTicket|1725}})<br />
* Added GM_setClipboard() API method. ({{GitTicket|1514}}) <br />
<br />
Fixed bugs:<br />
<br />
* Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. ({{GitTicket|1744}})<br />
* Fix GM_openInTab() behavior with relative URLs. ({{GitTicket|1719}})<br />
<br />
=== 1.9 ===<br />
<br />
May 13, 2013<br />
[http://www.greasespot.net/2013/05/greasemonkey-19-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Keep the script name and version in sync, for the Add-ons Manager display. ({{GitTicket|1734}}, {{GitTicket|1710}})<br />
* Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. ({{GitTicket|1732}}) <br />
* Fix automated script updates (the first automatic update could cause future updates to stop working). ({{GitTicket|1723}})<br />
* The abort() method for GM_xmlhttpRequest was not permissioned properly. ({{GitTicket|1714}})<br />
<br />
=== 1.8 ===<br />
<br />
Feb 21, 2013<br />
[http://www.greasespot.net/2013/02/greasemonkey-18-release.html]<br />
<br />
Enhancements:<br />
<br />
* Added shortcuts to the various Greasemonkey web sites in the monkey menu. ({{GitTicket|1704}})<br />
* The redirectionLimit option has been added to GM_xmlhttpRequest(). ({{GitTicket|1690}})<br />
* By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. ({{GitTicket|1688}})<br />
<br />
Bug fixes:<br />
<br />
* Scripts work at about:blank again. ({{GitTicket|1696}})<br />
* Drag-and-drop into the Add-ons Manager works now. ({{GitTicket|1663}})<br />
<br />
=== 1.7.1 ===<br />
<br />
Jan 17, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-17-release.html]<br />
<br />
(Note: Due to issue {{GitTicket|1692}}, found after 1.7's release but before Mozilla approved it, 1.7 was pulled and 1.7.1 is the first public release after 1.6.)<br />
<br />
Bug fixes:<br />
<br />
* A change to the [[Include and exclude rules#Magic_TLD|Magic TLD]] feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. ({{GitTicket|1689}})<br />
* Two translations were missing from the cs locale. ({{GitTicket|1687}})<br />
<br />
=== 1.6 ===<br />
<br />
Jan 10, 2013<br />
[http://www.greasespot.net/2013/01/greasemonkey-16-release.html]<br />
<br />
Enhancements:<br />
<br />
* Properly run scripts on pages that specify only a username in the URL. ({{GitTicket|1677}})<br />
* Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. ({{GitTicket|1672}})<br />
* Add the line number to the "use of return outside functions is deprecated" warning. ({{GitTicket|1670}})<br />
* Update the pattern matching for the Magic TLD part of @include rules. ({{GitTicket|1351}})<br />
<br />
Bug fixes:<br />
<br />
* Calling window.location.replace() with only an #anchor part of the URL no longer fails. ({{GitTicket|1584}})<br />
<br />
=== 1.5 ===<br />
<br />
Nov 19, 2012<br />
[http://www.greasespot.net/2012/11/greasemonkey-15-release.html]<br />
<br />
Enhancements:<br />
<br />
* Improve the clarity of the error message when installing a script with a missing sub-resource. ({{GitTicket|1666}})<br />
* Create opt-in only statistics gathering. See [http://www.greasespot.net/2012/11/anonymous-statistic-gathering.html the blog post about this] for more detail. ({{GitTicket|1651}})<br />
* When displaying an update that has been found but not installed due to user settings, show the version that will be installed by the update, not the version already installed. ({{GitTicket|1497}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a failure to download updates when one is found. ({{GitTicket|1669}})<br />
* Fix the enable/disable pattern on the User Script Commands sub menu. ({{GitTicket|1665}})<br />
* Do not break the script when adding a bad (i.e. 404) URL as a new @require. ({{GitTicket|1661}})<br />
* Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. ({{GitTicket|1659}})<br />
* Fix when relative URLs are provided for downloadURL or updateURL. ({{GitTicket|1658}})<br />
<br />
=== 1.4 ===<br />
<br />
Oct 7, 2012<br />
[http://www.greasespot.net/2012/10/greasemonkey-14-release.html]<br />
<br />
Enhancements:<br />
<br />
* The User Script update code has been revamped and simplified to be completely integrated with the standard Firefox Add-on update system. Opting in and out of update checking and installing now uses the base Firefox settings. If you are opted out of automatically installing updates, there should be an "Updates" tab in the Add-ons Manager where you can review and optionally install them.<br />
<br />
Bug fixes:<br />
<br />
* Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. ({{GitTicket|1646}}, {{GitTicket|1647}})<br />
* Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. ({{GitTicket|1632}})<br />
<br />
=== 1.3 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-13-release.html]<br />
<br />
Enhancements:<br />
<br />
* The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. ({{GitTicket|1640}})<br />
* Use new style non-modal popup notifications where old toast style notifications were used. ({{GitTicket|1563}})<br />
<br />
Bug fixes:<br />
<br />
* A false "update" was installed on every page load. (Cause: {{GitTicket|1636}} Fix: {{GitTicket|1643}})<br />
<br />
=== 1.2 ===<br />
<br />
Sep 27, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-12-release.html]<br />
<br />
Note: This release was never made public because of {{GitTicket|1643}}.<br />
<br />
Enhancements:<br />
<br />
* Enhance compatibility with Add-on Update Checker. ({{GitTicket|1621}})<br />
* Add resources property to GM_info. ({{GitTicket|1610}})<br />
<br />
Bug fixes:<br />
<br />
* Fix __exposedProps__ issues with GM_xmlhttpRequest and GM_listValues. ({{GitTicket|1637}}, {{GitTicket|1629}}) <br />
* Don't auto-install script updates when that preference is turned off. ({{GitTicket|1636}})<br />
* Run scripts at a http://user:pass@domain/ style URL. ({{GitTicket|1631}})<br />
* Fix GM_registerMenuCommand (broken in 1.1). ({{GitTicket|1627}})<br />
<br />
=== 1.1 ===<br />
<br />
Sep 6, 2012<br />
[http://www.greasespot.net/2012/09/greasemonkey-11-release.html]<br />
<br />
Enhancements:<br />
<br />
* Compatibility with upcoming Firefox changes. (See [http://bugzil.la/553102]; {{GitTicket|1595}})<br />
<br />
Bug fixes:<br />
<br />
* Fix a Firefox crash caused by a bad greasemonkey-script: URL (i.e. passing the empty string, or a nonexistent resource name to GM_getResourceUrl().) ({{GitTicket|1623}})<br />
* Re-fixed the setTimeout + alert issue; it popped up again in the grant none case. (Note: Firefox 16 fixes this for real. This just applies the same old workaround.) ({{GitTicket|1620}})<br />
* Fixed the character encoding of the es-CL translation. ({{GitTicket|1616}})<br />
* Fixed the display of the "Enabled" check mark in the monkey menu. ({{GitTicket|1611}})<br />
* Fixed the "Show Script Source" button for some scripts. ({{GitTicket|1609}})<br />
* Killed the final remaining zombie compartment (i.e. memory leak). ({{GitTicket|1608}})<br />
<br />
=== 1.0 ===<br />
<br />
Aug 24, 2012<br />
[http://www.greasespot.net/2012/08/greasemonkey-10-release.html]<br />
<br />
Enhancements:<br />
<br />
* New metadata, <code>[[@grant]]</code>, specifies which special APIs a user script will have access to. Specifying @grant none means no special API access, and thus no security restrictions. Then, everything you're used to doing in JavaScript in a web page (including but not limited to jQuery) should just work. For legacy scripts (which have no @grant line at all), Greasemonkey will try to guess what <code>@grant</code> lines you should have. ({{GitTicket|1425}}, {{GitTicket|1427}}, {{GitTicket|1558}})<br />
* The toolbar button is colorful (in the enabled state) on Mac OS X. ({{GitTicket|1597}})<br />
* The metadata <code>@unwrap</code> has been removed, as being unwrapped is now the default. The wrapper will still be applied to scripts that have a "return" statement outside of any function, but this may be removed in the future, so make sure your scripts (and requires) don't do this; authors may manually add an anonymous function wrapper around the script for the exact same behavior. ({{GitTicket|1568}}, {{GitTicket|1592}})<br />
* Scripts that @run-at document-start have a valid document object to modify, E.G. for adding &lt;style&gt; tags; but still before any part of the document is loaded. ({{GitTicket|1565}})<br />
* <code>GM_xmlhttpRequest()</code> accepts a timeout option. ({{GitTicket|1561}})<br />
* <code>GM_getResourceURL()</code> works with a special protocol handler. (This is more efficient/faster than the data: URI encoding used previously.) For example, specify images and styles with URLs to your <code>@resource</code>s.<br />
* The standard Firefox web developer console works for <code>console.log()</code> et al. ({{GitTicket|1564}})<br />
* Automatic updates work correctly with scripts installed from userscripts.org (but still note the require secure updates setting). ({{GitTicket|1555}})<br />
* Require at least Firefox 14.0 (no more Firefox 3 compatibility). ({{GitTicket|1426}}, {{GitTicket|1522}})<br />
* Error reporting is much more consistent and obvious than in the past. ({{GitTicket|1404}}, {{GitTicket|1592}})<br />
* The <code>alert()</code> workaround (see [http://bugzil.la/647727]) is not applied for Firefox versions that do not exhibit this bug. ({{GitTicket|1318}}, {{GitTicket|1350}})<br />
<br />
Bug fixes:<br />
<br />
* When downloading a script not encoded in UTF-8, display an error message to the user (rather than just failing). ({{GitTicket|1588}})<br />
* The "show script" button in the install dialog is disabled until the download of the script file is complete. ({{GitTicket|1586}})<br />
* Scripts with missing or broken "==UserScript==" metadata will work. ({{GitTicket|1562}})<br />
<br />
== 0.9 ==<br />
<br />
=== 0.9.22 ===<br />
<br />
July 31, 2012<br />
[http://www.greasespot.net/2012/07/greasemonkey-0921-release.html]<br />
<br />
Enhancements:<br />
<br />
* Fix memory leak related to GM_registerMenuCommander. ({{GitTicket|1578}})<br />
<br />
=== 0.9.20 ===<br />
<br />
May 14, 2012<br />
[http://www.greasespot.net/2012/05/greasemonkey-0920-release.html]<br />
<br />
Enhancements:<br />
<br />
* When the toolbar is in text-only mode, the "Greasemonkey" label on the toolbar button will be striked-out when Greasemonkey is disabled. ({{GitTicket|1544}})<br />
* When selecting a script editor, the previous choice will be remembered and displayed. ({{GitTicket|1546}})<br />
<br />
Bug fixes:<br />
<br />
* A change in 0.9.19 broke <code>setTimeout()</code> for a variety of cases, that has been reverted. ({{GitTicket|1549}}, {{GitTicket|1552}}, {{GitTicket|1553}})<br />
* Scripts with long names and/or file names could fail to install in Windows. ({{GitTicket|1548}})<br />
<br />
=== 0.9.19 ===<br />
<br />
April 23, 2012<br />
[http://www.greasespot.net/2012/04/greasemonkey-release-0919.html]<br />
<br />
Enhancements:<br />
<br />
* A custom wrapper to make setTimeout() work even when Javascript is disabled. ({{GitTicket|1209}})<br />
* Restored the "script installed successfully" toast notification. ({{GitTicket|1511}})<br />
* Scripts download more incrementally; the install dialog should appear as soon as the script metadata has been downloaded, not after the entire script is downloaded. ({{GitTicket|1523}})<br />
<br />
Bug fixes:<br />
<br />
* Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). ({{GitTicket|1173}})<br />
* Scripts installed while the Add-Ons Manager is open will show their icon. ({{GitTicket|1535}})<br />
<br />
=== 0.9.18 ===<br />
<br />
Feb 28, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0918-release.html]<br />
<br />
Enhancements:<br />
<br />
* Automatic update checking can be enabled, without automatically installing updates. ({{GitTicket|1455}})<br />
* Script updating is enabled by default. Please read [http://www.greasespot.net/2012/02/automatic-script-updates-come-to.html the blog post describing this new feature]. ({{GitTicket|1462}}, {{GitTicket|1463}}, {{GitTicket|1480}})<br />
<br />
Bug fixes:<br />
<br />
* Add-on Manager shows correct data when re-installing (e.g. to update) a script. ({{GitTicket|1476}})<br />
* Re-installed scripts are put into the same directory as the original. ({{GitTicket|1515}})<br />
* The matches property of GM_info is now a list of (pattern) strings. ({{GitTicket|1516}})<br />
<br />
=== 0.9.17 ===<br />
<br />
Feb 11, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0917-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error: "aForced is not defined". ({{GitTicket|1517}})<br />
<br />
=== 0.9.16 ===<br />
<br />
February 10, 2012<br />
[http://www.greasespot.net/2012/02/greasemonkey-0916-release.html]<br />
<br />
Enhancements:<br />
<br />
* Expose information (including Greasemonkey version) to user scripts via [[GM_info]]. ({{GitTicket|1452}}; also see {{GitTicket|1512}})<br />
* Track the install time of scripts. (This is designed to better support automatic updates for scripts ... still coming soon.) ({{GitTicket|1513}})<br />
<br />
Bug fixes:<br />
<br />
* Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. ({{GitTicket|1504}})<br />
* Enabling/disabling scripts from the status bar menu (Firefox 3 only). ({{GitTicket|1506}})<br />
* Incompatibility with GreaseFire. ({{GitTicket|1507}})<br />
* Failures during "Check for Updates" from the Add-on manager. ({{GitTicket|1509}})<br />
<br />
=== 0.9.15 ===<br />
<br />
January 25, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0915-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. ({{GitTicket|1466}}, {{GitTicket|1502}})<br />
* Certain @requires can break a script, due to javascript semicolon insertion rules. ({{GitTicket|1491}})<br />
* Toggling the enabled state of a script via the main (Tools > Greasemonkey) menu failed on Mac. ({{GitTicket|1496}})<br />
* Installing a script from local disk failed in 0.9.14. ({{GitTicket|1501}})<br />
<br />
=== 0.9.14 ===<br />
<br />
January 20, 2012<br />
[http://www.greasespot.net/2012/01/greasemonkey-0914-release.html]<br />
<br />
Enhancements:<br />
<br />
* For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. ({{GitTicket|1419}})<br />
<br />
Bug fixes:<br />
<br />
* Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). ({{GitTicket|1472}})<br />
* Guarantee that we do not create a specific kind of memory leak. ({{GitTicket|1482}})<br />
<br />
=== 0.9.13 ===<br />
<br />
November 3, 2011<br />
[http://www.greasespot.net/2011/11/greasemonkey-0913-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script updates install automatically. ({{GitTicket|1442}})<br />
* In 0.9.12 we added update checking. In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best ({{GitTicket|1455}}), so checking is still not enabled by default. We hope to figure this out by the 0.9.14 release. Some other update related work was done, mostly to make Firefox 3 work better. ({{GitTicket|1421}}, {{GitTicket|1422}}, {{GitTicket|1423}})<br />
* Provide an Options item in the Monkey Menu. ({{GitTicket|1447}})<br />
* Add a Cancel button to the Options window. ({{GitTicket|1454}}) <br />
<br />
Bug fixes:<br />
<br />
* GM_getResourceText() was broken. ({{GitTicket|1438}})<br />
* You can properly select an application (bundle) for the editor on Mac OS X. ({{GitTicket|1439}})<br />
* Fix GM_openInTab for Firefox 3. ({{GitTicket|1444}})<br />
* Fix when pages reassign the location during page load. ({{GitTicket|1445}})<br />
<br />
=== 0.9.12 ===<br />
<br />
September 29, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0912-release.html]<br />
<br />
Enhancements:<br />
<br />
* Script update checking (limited!). ({{GitTicket|1053}})<br />
* Scripts run with the latest available version of Javascript. ({{GitTicket|1403}})<br />
<br />
Bug fixes:<br />
<br />
* Shared window object. ({{GitTicket|1278}})<br />
* Right-clicking a script in the Monkey Menu works, even when no editor is configured. ({{GitTicket|1405}})<br />
* Fix launching the editor. ({{GitTicket|1409}})<br />
* Scripts with @match could break loading all other scripts. ({{GitTicket|1414}})<br />
* When browsing local files, menu commands for all scripts (on all tabs) no longer display. ({{GitTicket|1424}})<br />
* Fix GM_openInTab(). ({{GitTicket|1428}})<br />
<br />
=== 0.9.11 ===<br />
<br />
September 6, 2011<br />
[http://www.greasespot.net/2011/09/greasemonkey-0911-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Apply a workaround for Tab Mix Plus' brokenness. ({{GitTicket|1406}})<br />
<br />
=== 0.9.10 ===<br />
<br />
August 22, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-0910-release.html]<br />
<br />
Bug fixes:<br />
<br />
* You will be prompted to pick a new editor if the existing setting is an invalid path. ({{GitTicket|1386}})<br />
* Changing views within the Add-ons Manager could cause the user script sort order to be wrong. ({{GitTicket|1394}})<br />
<br />
Enhancements:<br />
<br />
* When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. ({{GitTicket|1396}})<br />
* When Growl is not installed, Greasemonkey's notifications are less obtrusive. ({{GitTicket|1397}})<br />
* A range of internal code clean ups. ({{GitTicket|1395}}, {{GitTicket|1398}}, {{GitTicket|1399}}, {{GitTicket|1400}}, {{GitTicket|1401}})<br />
<br />
=== 0.9.9 ===<br />
<br />
August 12, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-099-release.html]<br />
<br />
Note: never approved by Mozilla.<br />
<br />
Bug fixes:<br />
<br />
* Pressing 'back' could rarely cause a script to run twice on the same page. ({{GitTicket|1083}})<br />
* Extended characters would get corrupted in new scripts. ({{GitTicket|1236}}, {{GitTicket|1315}})<br />
* A full disk could cause loss of data (especially config.xml). ({{GitTicket|1301}})<br />
* (Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: {{GitTicket|1389}}, always for certain scripts: {{GitTicket|1391}})<br />
<br />
Enhancements:<br />
<br />
* GM_xmlhttpRequest() provides progress events. ({{GitTicket|1081}})<br />
* GM_xmlhttpRequset() provides a synchronous mode. ({{GitTicket|1269}})<br />
* By popular demand: a UI for editing @includes and @excludes. ({{GitTicket|1362}})<br />
<br />
=== 0.9.8 ===<br />
<br />
August 1, 2011<br />
[http://www.greasespot.net/2011/08/greasemonkey-098-release.html]<br />
<br />
Bug fixes:<br />
<br />
* User scripts cannot run in any about: pages besides about:blank. (Security enhancement; {{GitTicket|1375}})<br />
<br />
Enhancements:<br />
<br />
* Global, user specified, @exclude rules. ({{GitTicket|1002}})<br />
* Support for [[Metadata block#.40run-at|@run-at]] metadata imperative, which supports value document-start, as well as the standard document-end behavior. ({{GitTicket|1103}})<br />
* New [[Metadata block#.40match|@match]] metadata imperative, as implemented by Google Chrome. Thanks to [https://github.com/scriptish/scriptish/ Scriptish] for original implementation. ({{GitTicket|1377}})<br />
* Support for full regular expression syntax in [[Include and exclude rules]]. ({{GitTicket|1378}})<br />
<br />
=== 0.9.7 ===<br />
<br />
July 14, 2011<br />
[http://www.greasespot.net/2011/07/greasemonkey-097-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Scripts with broken @icons will install, just with no icon. ({{GitTicket|1214}})<br />
* Editing the @icon line of a script will take effect immediately. ({{GitTicket|1215}})<br />
* Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. ({{GitTicket|1222}})<br />
<br />
Enhancements:<br />
<br />
* Compatibility with Firefox 6 and 7. ({{GitTicket|1357}})<br />
* [[GM_openInTab]]() will respect the <code>insertRelatedAfterCurrent</code> preference. ({{GitTicket|1370}})<br />
<br />
=== 0.9.6 ===<br />
<br />
June 24, 2011<br />
[http://www.greasespot.net/2011/06/greasemonkey-096-release.html]<br />
<br />
Bug fixes:<br />
<br />
* [[GM_openInTab]]() fails in Firefox 3. ({{GitTicket|1361}})<br />
* Firefox 5: Error in Add-ons Manager. ({{GitTicket|1367}})<br />
<br />
Enhancements:<br />
<br />
* Add "get user scripts" link to the Add-ons Manager. ({{GitTicket|1213}})<br />
* Pass site cookies when downloading scripts. ({{GitTicket|1359}})<br />
<br />
=== 0.9.5 ===<br />
<br />
May 26, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-095-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Installing and uninstalling the same script many times does not work properly. ({{GitTicket|1353}})<br />
* GM_xmlhttpRequest() does not work in Firefox 5 betas. ({{GitTicket|1354}})<br />
* (Introduced in 0.9.4:) Cannot enable nor disable scripts. ({{GitTicket|1355}})<br />
* Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. ({{GitTicket|1356}})<br />
<br />
Enhancements:<br />
<br />
* The installation dialog shows the script version, if provided with @version. ({{GitTicket|1349}})<br />
<br />
=== 0.9.4 ===<br />
<br />
'''Note:''' Not publicly released due to bugs.<br />
<br />
May 24, 2011<br />
[http://www.greasespot.net/2011/05/greasemonkey-094-release.html]<br />
<br />
Bug fixes:<br />
<br />
* The GM_openInTab() API again returns a handle to the window object. ({{GitTicket|1298}})<br />
* Using alert() will not break setTimeout() nor GM_xmlhttpRequest(). ({{GitTicket|1318}})<br>'''Note:''' we currently only have a work-around in place, watch mozilla bug 647727 for a real fix.<br />
<br />
Enhancements:<br />
<br />
* When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).<br />
* Removed the detail view for user scripts, which did not contain any more information than the list view.<br />
<br />
=== 0.9.3 ===<br />
<br />
April 28, 2011<br />
[http://www.greasespot.net/2011/04/greasemonkey-093-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. ({{GitTicket|1226}}, {{GitTicket|1298}})<br />
* Navigating to a .user.js inside a frame works like anywhere else. ({{GitTicket|1248}})<br />
* The list of user scripts in the Add-ons Manager would sometimes forget its sort order. ({{GitTicket|1307}})<br />
* Compatibility enhancement with AutoPager (broken in 0.9.2). ({{GitTicket|1344}})<br />
* Passing a non-function to GM_registerMenuCommand()'s commandFunc broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). ({{GitTicket|1346}}, {{GitTicket|1347}})<br />
<br />
Enhancements:<br />
<br />
* Passing the Referer header works, for GM_xmlhttpRequest(). ({{GitTicket|1240}})<br />
* Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). ({{GitTicket|1345}})<br />
<br />
=== 0.9.2 ===<br />
<br />
April 5, 2011<br />
[http://www.greasespot.net/2011/03/greasemonkey-092-release.html]<br />
<br />
Bug Fixes:<br />
<br />
* Failure on OSX when Growl is installed, but not running. ({{GitTicket|1264}})<br />
* Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). ({{GitTicket|1284}}, {{GitTicket|1291}})<br />
* Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. ({{GitTicket|1293}})<br />
* Remove "accelerator" keys from GM_registerMenuCommand(). ({{GitTicket|1312}}, [http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html])<br />
* Work around incompatibility with Personas Plus extension. ({{GitTicket|1253}})<br />
<br />
Enhancements:<br />
<br />
* Provide a toolbar button, and remove the status bar icon for Firefox 4. ({{GitTicket|1227}})<br />
* When re-installing a script (e.g. for an update), keep it in the same execution order. ({{GitTicket|1267}})<br />
* Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. ({{GitTicket|1305}})<br />
<br />
=== 0.9.1 ===<br />
<br />
January 24, 2011<br />
[http://www.greasespot.net/2011/01/greasemonkey-091-release.html]<br />
<br />
Bug fixes:<br />
<br />
* Fix user script sandbox wrapping. This deals with lots of problems like <code>eval()</code>. ({{GitTicket|1258}}, also {{GitTicket|1254}}, {{GitTicket|1260}}, {{GitTicket|1263}}, {{GitTicket|1265}})<br />
* Fixed rare bug when installing scripts. ({{GitTicket|1250}})<br />
* Fixed errors when Growl is not installed on Mac OS X. ({{GitTicket|1249}})<br />
* Fixed problems with relative @require imperatives. ({{GitTicket|1262}})<br />
<br />
New features:<br />
<br />
* Allow sorting by descending (as well as ascending) execution order. ({{GitTicket|1217}})<br />
<br />
=== 0.9.0 ===<br />
<br />
January 18, 2011<br />
[http://www.greasespot.net/2010/11/greasemonkey-090-release.html]<br />
<br />
Features:<br />
<br />
* Compatibility with Firefox 4! Firefox 4 support is still preliminary. Everything probably works, but not everything works really well. The backlog of bugs for the next release is primarily focused on this.<br />
* Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on. (See the reference link above for screenshots.)<br />
* A global options dialog, where the script editor can always be selected. ({{GitTicket|1012}}, {{GitTicket|1109}})<br />
* Live in-place editing for the entire script, including metadata (<code>@name</code>, <code>@require</code>, <code>@include</code>, <code>@exclude</code>, etc.). ({{GitTicket|1148}}, {{GitTicket|1157}}, {{GitTicket|1165}})<br />
* Web pages that end in .user.js are loaded as normal, instead of being installed as a user script. ({{GitTicket|1184}})<br />
<br />
Bug fixes / minor enhancements:<br />
<br />
* All Greasemonkey windows respond to standard close window keyboard shortcuts. ({{GitTicket|1085}})<br />
* Support for @icon metadata imperative, displayed in the new add-ons manager integration. ({{GitTicket|1096}})<br />
* Support user and password for <code>[[GM_xmlhttpRequest]]()</code>. ({{GitTicket|1100}})<br />
* Support @version metadata imperative. ({{GitTicket|1110}})<br />
* Suppress spurious <tt>Error: not well-formed (// ==UserScript==)</tt> error messages. ({{GitTicket|1134}})<br />
* The "install" menu item is removed. ({{GitTicket|1196}})<br />
<br />
== 0.8 ==<br />
<br />
=== 0.8.20100408.6 ===<br />
<br />
April 8, 2010<br />
[http://www.greasespot.net/2010/04/greasemonkey-086-release.html]<br />
<br />
Features:<br />
<br />
* Add a hidden preference to allow greasing the unmht: scheme. ({{GitTicket|1038}})<br />
* Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest. ({{GitTicket|1057}})<br />
* Performance enhancements and code improvements to internal logic behind @include and @exclude rules. ({{GitTicket|1070}} {{GitTicket|1074}} {{GitTicket|1089}})<br />
* Added translations: ca-ES, cs, fr, nl, sr-RS, vi.<br />
<br />
Bug fixes:<br />
<br />
* GM_xmlhttpRequest() can fail when Object.prototype has been modified. ({{GitTicket|1065}})<br />
* Two warnings upon making new script via "New User Script". ({{GitTicket|1069}})<br />
* Installing scripts from the hard drive (instead of via the web) can fail. ({{GitTicket|1077}})<br />
* Fix a flaw that could allow websites to prevent Greasemonkey from running. ({{GitTicket|1082}})<br />
* Error "this.menuCommanders is undefined" bug when closing a browser window. ({{GitTicket|1087}})<br />
* Error "ScriptDownloader is not defined" when performing view source on a user script. ({{GitTicket|1091}})<br />
<br />
=== 0.8.20100211.5 ===<br />
<br />
February 11, 2010<br />
[http://www.greasespot.net/2010/02/greasemonkey-085-release.html]<br />
<br />
* Add an abort() method for GM_xmlhttpRequest. ({{GitTicket|1007}})<br />
* Increase compatibility with bleeding-edge Firefox versions. ({{GitTicket|1054}})<br />
* Display a "welcome" page to new users when they install. ({{GitTicket|1006}})<br />
* Fix hooking into the console object for Firebug 1.5.<br />
<br />
=== 0.8.20091209.4 ===<br />
<br />
December 8, 2009<br />
[http://www.greasespot.net/2009/12/greasemonkey-084-released.html]<br />
<br />
* Properly specify the .finalUrl for [[GM_xmlhttpRequest]] results. ({{GitTicket|1063}})<br />
<br />
=== 0.8.20090920.2 ===<br />
<br />
September 26, 2009<br />
[http://www.greasespot.net/2009/09/greasemonkey-082-released.html]<br />
* Do not inject scripts into file: and about: URLs by default, for security reasons. ({{GitTicket|1000}})<br />
* The GM_openInTab() function respects the background loading tab behavior from Firefox preferences. ({{GitTicket|1003}})<br />
* Specify label/control associations in "New Script" dialog, for accessibility. ({{GitTicket|1010}})<br />
* Minor code clean ups and improvements. ({{GitTicket|1011}}, {{GitTicket|1020}})<br />
* Remove "forced" upgrade code. ({{GitTicket|1013}})<br />
* Remove extra spacing around the status bar icon. ({{GitTicket|1014}})<br />
* When adding include/exclude rules, include the port number in the default suggestion. ({{GitTicket|1015}})<br />
* Reduce noise logged to the console when interacting with Firebug. ({{GitTicket|1018}})<br />
* Apply security checks to GM_listValues() and GM_deleteValue(). ({{GitTicket|1019}})<br />
* Fix missing localized strings in various locales. ({{GitTicket|1022}})<br />
* Grease pages loaded into the sidebar. ({{GitTicket|1023}})<br />
* Allow user scripts to access the latest available JavaScript engine. ({{GitTicket|1026}})<br />
<br />
=== 0.8.20090123.1 ===<br />
<br />
February 18th, 2009<br />
[http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html]<br />
<br />
* Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.<br />
* Fix for ticket #111 (anomalous separators in the monkey menu).<br />
* Added [[GM_deleteValue|GM_deleteValue]] and [[GM_listValues|GM_listValues]] APIs (#38).<br />
* Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the [[Metadata Block#.40unwrap|@unwrap]] metadata imperative, #108).<br />
* Improved interaction with the Firebug console (#122, #204).<br />
<br />
=== 0.8.20080609.0 ===<br />
<br />
June 12th, 2008<br />
[http://www.greasespot.net/2008/06/greasemonkey-version-08.html]<br />
<br />
* New metadata: [[Metadata Block#.40resource|@resource]], [[Metadata Block#.40resource|@require]].<br />
* New API functions: [[GM_getResourceURL]], [[GM_getResourceText]]<br />
* New property of [[GM_xmlhttpRequest]] return: [[GM_xmlhttpRequest#finalUrl|finalUrl]]<br />
* Internal code improvements<br />
* New graphics by Pak-Kei Mak, icons in the Add Ons dialog and Status Bar<br />
<br />
== 0.7 ==<br />
<br />
=== 0.7.20080121.0 ===<br />
<br />
Jan 21st, 2008<br />
[http://www.greasespot.net/2008/01/greasemonkey-security-update.html]<br />
<br />
* Security release where [[GM_xmlhttpRequest]], [[GM_getValue]] and [[GM_setValue]] were hardened against a privilege escalation attack targeting specific user scripts accessing anything through [[unsafeWindow]], thus gaining content code unrestricted access to those methods (thanks Anthony Lieuallen).<br/> This change breaks backwards compatibility for scripts granting page code direct or limited access to either method via function references on unsafeWindow; see [[0.7.20080121.0 compatibility]] for available workarounds.<br />
<br />
=== 0.7.0 ===<br />
<br />
May 24th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html]<br />
<br />
* Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.<br />
* Fixed the bug where drag and drop in the manage dialog only works once per view.<br />
* Fixed the bug where removing a script in the manage dialog also removes the last script.<br />
<br />
== 0.6 ==<br />
<br />
=== 0.6.9 ===<br />
<br />
May 9th, 2007<br />
[http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html]<br />
<br />
Introduced:<br />
* You can now reorder the scripts in the manage dialog with drag drop or the arrow keys.<br />
* You can now use Firebug's console object to debug Greasemonkey if you have Firebug installed.<br />
* Fix bug where install dialog would pop up when Greasemonkey is disabled.<br />
* Make Greasemonkey enable/disable keyboard accessible. #9<br />
<br />
=== 0.6.8 ===<br />
<br />
March 17th, 2007<br />
[http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html]<br />
<br />
Introduced:<br />
<br />
* Rewrite of 'New Script...' UI. It now pops up a nice UI to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.<br />
* Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.<br />
* Added support for [[GM_xmlhttpRequest#overrideMimeType|overrideMimeType]] to [[GM_xmlhttpRequest]]. Thanks to Lior Zur for the patch. To use, add overrideMimeType: "yourmimetypehere" to the object you pass to GM_xmlhttpRequest.<br />
* New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.<br />
<br />
=== 0.6.7 ===<br />
<br />
February 7th, 2007<br />
[http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html]<br />
<br />
Introduced:<br />
<br />
* Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)<br />
* Added Basque translation (thanks 3ARRANO)<br />
* Updated German translation (thanks Matthias Bauer)<br />
* Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)<br />
<br />
=== 0.6.6 ===<br />
<br />
October 16th, 2006<br />
[http://greaseblog.blogspot.com/2006/10/greasemonkey-066-firefox-2-support-and.html]<br />
<br />
Introduced:<br />
* Spiffy new installation dialog which more closely resembles the extension installation dialog, and presents more details in a user-friendly way.<br />
* Spanish language support.<br />
<br />
=== 0.6.5 ===<br />
<br />
July 28th, 2006<br />
[http://greasemonkey.mozdev.org/changes/0.6.5.20060727.html]<br />
<br />
Multiple versions released in separate places; largely to the Greasemonkey mailing list.<br />
Introduced:<br />
* Compatibility with Firefox 2.0.<br />
* Foreign language support for Czech, Dutch, and German.<br />
<br />
=== 0.6.4 ===<br />
<br />
November 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/11/greasemonkey-064_30.html]<br />
[http://greasemonkey.mozdev.org/changes/0.6.4.html]<br />
<br />
Introduced:<br />
??<br />
<br />
=== 0.6.2 ===<br />
<br />
September 12th, 2005<br />
[http://greaseblog.blogspot.com/2005/09/firefox-15-compatible-greasemonkey.html]<br />
<br />
Introduced:<br />
* Compatibility with Firefox 1.5.<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
=== 0.6.1 ===<br />
September 9th-ish, 2005<br />
<br />
"The Lost Version"<br />
<br />
Prerelease showing of:<br />
* [[GM_addStyle|GM_addStyle]] (From release 0.6.1.4... I probably have this archived somewhere LOL)<br />
* The [[Greasemonkey_Manual:Monkey_Menu|Monkey Menu]], a context menu for the status bar item added in 0.3 beta.<br />
* Simplified script installation dialogs.<br />
<br />
Some sort of mad scramble occurred on this week when Firefox 1.5b1 was released and this version was lost but not forgotten.<br />
<br />
== 0.5 ==<br />
<br />
=== 0.5.3 ===<br />
<br />
September 3rd, 2005<br />
[http://greaseblog.blogspot.com/2005/09/053-available.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.3.html]<br />
<br />
=== 0.5.2 ===<br />
<br />
September 1st, 2005<br />
[http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html]<br />
<br />
Released to the Greasemonkey mailing list, fixed bugs in the automatic migration system for the changes between the 0.3 and 0.5 branches.<br />
<br />
=== 0.5.1 ===<br />
<br />
August 25, 2005<br />
[http://greaseblog.blogspot.com/2005/08/greasemonkey-051-final.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.1.html]<br />
<br />
Introduced:<br />
* Security fix wherein a [[user script]] could elevate itself to chrome privileges.<br />
* User can select the editor to use for "Edit" in manage, and "New User Script".<br />
* Unicode support for non-english characters.<br />
<br />
=== 0.5 beta ===<br />
<br />
July 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/greasemonkey-05-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.5.html]<br />
<br />
The first release containing security fixes over 0.3.5 intended for public consumption.<br />
"Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4."<br />
<br />
Introduced:<br />
* [[GM_openInTab]], [[unsafeWindow]]<br />
* Enhancements to [[GM_registerMenuCommand]]: keyboard shortcuts, stability.<br />
* Memory leak fixes.<br />
* "New User Script" menu item, shortcut to a new blank template for [[user script]] authors.<br />
* Restricted [[GM_xmlhttpRequest]] from accessing local <code>file://</code> URLs.<br />
<br />
== 0.4 ==<br />
<br />
=== 0.4.x ===<br />
<br />
''Details needed.''<br />
<br />
The 0.4 branch was an internal development version, where experimentation for security fixes happened.<br />
<br />
== 0.3 ==<br />
<br />
<br />
=== 0.3.5 ===<br />
<br />
July 19th, 2005<br />
[http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.5.html]<br />
<br />
Security flaw release.<br />
Contained no fixes, rather removed all vulnerable features.<br />
Intended for (limited) continued use while fixes were being performed.<br />
<br />
=== 0.3.4 ===<br />
<br />
May 12th, 2005<br />
[http://greasemonkey.mozdev.org/changes/0.3.4.html]<br />
<br />
Introduced:<br />
* ".tld" support in @include/@exclude, allowing things like <code>@include <nowiki>http://www.example.tld/</nowiki></code> for all international permutations.<br />
* Log level option for [[GM_log]]<br />
* Minor enhancements and bugfixes.<br />
<br />
=== 0.3.3 ===<br />
<br />
May 10th, 2005<br />
[http://greaseblog.blogspot.com/2005/05/greasemonkey-033-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3.3.html]<br />
<br />
Primarily bugfix release.<br />
<br />
=== 0.3 beta ===<br />
<br />
April 23rd, 2005<br />
[http://greaseblog.blogspot.com/2005/04/greasemonkey-03b-beta.html]<br />
[http://greasemonkey.mozdev.org/changes/0.3b.html]<br />
<br />
Introduced:<br />
* Edit button in the manage dialog.<br />
* Monkey icon in the status bar, click to enable/disable.<br />
* [[GM_getValue]], [[GM_setValue]], [[GM_log]]<br />
<br />
== 0.2 ==<br />
<br />
=== 0.2.6 ===<br />
<br />
March 30th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-026-now-with-less-fatal.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.6.html]<br />
<br />
Bugfix release.<br />
<br />
=== 0.2.5 ===<br />
<br />
March 28th, 2005<br />
[http://greaseblog.blogspot.com/2005/03/greasemonkey-025-xmlhttp-across.html]<br />
[http://greasemonkey.mozdev.org/changes/0.2.5.html]<br />
<br />
Introduced:<br />
* [[GM_xmlhttpRequest]]<br />
* [[GM_registerMenuCommand]]<br />
<br />
Also, the default user scripts that were bundled with [[Greasemonkey]] by default until this point were removed.</div>Arantiushttps://wiki.greasespot.net/index.php?title=Monkey_Menu&diff=7588Monkey Menu2018-01-19T16:20:05Z<p>Arantius: Redirected page to Greasemonkey Manual:Monkey Menu</p>
<hr />
<div>#REDIRECT [[Greasemonkey_Manual:Monkey_Menu]]</div>Arantius