Wednesday, October 29, 2014

Greasemonkey 2.3 Release

The entire list of bugs handled in this release is also available via the 2.2 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.  If you are using this version and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Enhancements and changes:
  • Added @noframes metadata imperative. (#1859)
Fixed bugs:
  • Improved disk usage of script values' SQLite databases. (#2036)
  • Fixed the responseType feature for GM_xmlhttpRequest(). (#2032)
  • Fixed a null variable reference in Firefox Sync. (#2014, #2017)

Thursday, August 28, 2014

Greasemonkey 2.2 Release

The entire list of bugs handled in this release is also available via the 2.2 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.  If you are using this version and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Enhancements and changes:
  • Added a "New User Script" button into the Add-ons Manager. (#1972)
  • Scripts will always execute (or not) based on their original URL, before any possible history.replaceState() changes by the content scripts. (#1970)
  • Script @name and @description values can be localized for multiple languages. (#1963)
Fixed bugs:
  • User scripts will never execute with chrome privileges. (#1988)
  • Improved Drag-and-Drop into the Add-ons Manager. (#1980)
  • Correctly show all Unicode characters when selecting View Script Source. (#1940)
  • Repair GM_xmlhttpRequest() for XML type responses. (#1937)
  • Fix the position of tabs created with GM_openInTab(). (#1897)
  • Do not falsely trigger the install dialog when e.g. editing a script via the GitHub web interface. (#1875)
  • Fixed an error when pressing cancel in the install dialog. (#1862)
  • GM_log() no longer truncate at NUL bytes. (#1061)

Monday, July 21, 2014

Greasemonkey 2.1 Release

The entire list of bugs handled in this release is also available via the 2.1 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.  If you are using this version and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Fixed bugs:
  • Fix script updates. (#1938)
  • Repair GM_xmlhttpRequest(), broken in 2.0. (#1937)
  • A script will no longer be overwritten by an @require of the same name. (#1906)
  • Repaired the functionality of the "Undo" button after uninstalling a script. (#1898)

Tuesday, June 17, 2014

Greasemonkey 2.0 Release

The entire list of bugs handled in this release is also available via the 2.0 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.  If you are using this version and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Backwards incompatible changes:
  • For stability, reliability, and security the privileged sandbox has been updated to match the new changes to unsafeWindow for the Add-on SDKIn order to write values to unsafeWindow you will need to use the new methods cloneInto(), exportFunction(), and/or createObjectIn().
  • The @grant none mode is now the default, and grants will no longer be implied when not explicitly provided.  See the post Sandbox API Changes in Greasemonkey 2.0 for more detail.
If your script already specifies @grant none, these changes will not affect you.  If your script does not interact with unsafeWindow, these changes will not affect you.

Otherwise, these changes will break some scripts.  These scripts will need to be updated to work correctly again.  We don't take breaking changes lightly.  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.

Enhancements:
  • Greasemonkey will only use explicit @grant metadata, it will no longer sniff for implicitly used APIs. (This change takes effect at install time.  Currently installed scripts will continue to function as normal until they are updated/edited/reinstalled.) (#1908)
  • GM_addStyle() now returns the created element. (#1892)
  • Update checks will attempt to read a .meta.js file for scripts installed from any site on the internet.  (#1885)
  • Remove all references to the now defunct userscripts.org website. (#1884)
  • Privileged scripts' event listeners will run, even when content JavaScript is disabled. (#1882)
  • Turn on Firefox Sync support by default. (#1857)
  • GM_xmlhttpRequest() can set the resposeType parameter on the request. (#1834)
Fixed bugs:
  • A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.  (#1930)
  • Fixed a bug when parsing @match rules which could destroy configuration state. (#1912)
  • A bug fix for the @match metadata, to correctly match bare domain names. (#1899)
  • The database where persistent values are stored correctly vacuums its unused space. (#1879)
  • A relative @require URL will now work correctly. (#1874)
  • The options window will flex to fit on small (or large) screens. (#1871)
  • Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set. (#1852, #1870)

Sandbox API Changes in Greasemonkey 2.0

Since version 1.0 in August 2012, Greasemonkey has supported two modes: the legacy mode with privileged APIs available to the script, and a newer unprivileged mode.

When version 1.0 was initially released, this new unprivileged mode was not the default.  In fact, a script was required to explicitly opt in to this new behavior, by specifying @grant none, or opt out by  requesting access to any privileged API.  At that time, Greasemonkey would detect API usage by scripts that requested no @grant one way or the other, automatically applying what it considered the right values.  This was intended to make the migration from the legacy execution model to the new model smooth.

Today, many if not most or all scripts correctly request the APIs they need with @grant.  So as of version 2.0, Greasemonkey now defaults to @grant none.  It does not detect used-but-not-specified APIs, and an absence of all @grant lines means it will assume none.

Tuesday, February 11, 2014

Greasemonkey 1.15 release

The entire list of bugs handled in this release is also available via the 1.15 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.

If you are using it and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Enhancements:
  • Greasemonkey sends headers when making script update checks. (#1824)
  • Allow correct installation of even scripts with invalid duplicate UTF-8 BOMs. (#1823)
Fixed bugs:
  • Applied a workaround for a Firefox crash that affects scripts which use setInterval() incorrectly. (#1869)
  • Fixed enable/disable button state for user scripts in Add-ons Manager. (#1811)

Wednesday, January 15, 2014

Greasemonkey 1.14 Release

The entire list of bugs handled in this release is also available via the 1.14 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.

If you are using it and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Fixed bugs:
  • Certain script install/uninstall actions could cause Firefox to fail to open (Windows only). (#1833)

Wednesday, December 04, 2013

Greasemonkey 1.13 Release

The entire list of bugs handled in this release is also available via the 1.13 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version.  If you're interested in staying on the bleeding edge, try installing the development channel beta release.

If you are using it and notice problems, it's best to log an issue or let us know at greasemonkey-dev (and be clear that it's with this version).

Enhancements:

  • All scripts installed from userscripts.org will use HTTPS by default, so that automatic updates will work. (#1800)
  • 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. (#1798)
  • Log a more understandable error if GM_getResourceText is called with a nonexistent resource name. (#1796)
  • User script installation will continue if the @icon is unavailable. (#1793)
  • Firefox Sync support, to keep installed User Scripts the same on all your browsers. (#1573)
Fixed bugs:
  • We will not (incorrectly) say "Greasemonkey is disabled" when using the Show Script Source button. (#1828)
  • Fix saving the new script template value. (#1808)
  • Keep the Add-ons Manager display up to date as scripts change. (#1804)