Greasemonkey Changelog

What's new in Greasemonkey 4.12

Dec 18, 2023
  • New features:
  • Ability to edit text @resource files. (#2733)
  • Support for Firefox on Android. (#3173)
  • Fixed bugs:
  • Code highlighting for newer Javascript features. (#3115)
  • An invalid user @match could break opening the monkey menu. (#3171)
  • Add a scroll bar when too many menu commands are registered to fit on one screen. (#3177)

New in Greasemonkey 4.11 (Jan 28, 2021)

  • New features:
  • Support translation for <tt>@name</tt> and <tt>@description</tt> of user scripts. (#3089)
  • First party support for <tt>GM.registerMenuCommand</tt>. (#3078)

New in Greasemonkey 4.10 (Oct 4, 2020)

  • New features:<br />
  • Accessibility enhancements: Appropriate metadata for screen readers, a basic script editor. (#3058, #3059, #3060)
  • Fixed bugs:<br />
  • GM_xmlHttpRequest(): status is null when readyState < 4. (#3068)

New in Greasemonkey 4.9 (Jun 12, 2019)

  • Bug fixes:
  • Error handling scripts with certain names (bug added in v4.8). (#3035

New in Greasemonkey 4.8 (May 8, 2019)

  • Fixed bugs:
  • Don't re-enable scripts when saving in editor. (#3008)
  • "New user script" doesn't open a new tab. (#2994)
  • Log err.message instead of <unavailable> err object. (#2939)

New in Greasemonkey 4.7 (Aug 29, 2018)

  • Automatic update support (#2531)
  • Per-user include/exclude/match settings (#2728)

New in Greasemonkey 4.6 (Jul 13, 2018)

  • Fixed bugs:
  • Repair GM.xmlHttpRequest() when fetching XML content.
  • New features:
  • Added translations in several languages.
  • Users may specify global exclude patterns, where no user scripts will run.

New in Greasemonkey 4.5 (Jun 29, 2018)

  • Better importing of partial or corrupted backups. (#2966)
  • Correctly display script data when switching from one to another. (#2963)
  • Correctly display uninstallation of even the last script. (#2957)<br>
  • Correctly handle removal of an @icon from a script. (#2910)
  • New features:
  • The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. (<span id="goog_756288607"></span>#2858, #2900)

New in Greasemonkey 4.3 (Mar 17, 2018)

  • Fixed bugs:
  • The open_in_background feature of GM.openInTab() works correctly. (#2672)
  • Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. (#2631)
  • New features:
  • Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling GM.xmlHttpRequest(). (#2723)
  • Interface strings are translated into multiple languages. (#2527)
  • Greasemonkey will not install scripts while disabled. (#2643)
  • Monkey menu has new Firefox-native look and feel. (#2805)
  • New scalable icon. (#2739)

New in Greasemonkey 4.3 Beta 6 (Feb 26, 2018)

  • Different enabled/disabled icon in the Monkey Menu
  • Include `supported-apis.js` in the install dialog.
  • Also use the new check style for scripts.
  • Add a variety of simple test scripts.
  • Add versions to the long name test scripts
  • Repair display of long script names in the install dialog

New in Greasemonkey 4.3 Beta 2 (Jan 30, 2018)

  • Make `_randomUuid()` always return string of length 36.
  • Translations for locale de.
  • Fix scrolling issues with MM and submenu navigation
  • Fix MM overflow / popup width issues
  • Add comments concerning (min|max)-width in MM.css
  • Add persistence to GM databases
  • Overload navigator.storage.persist so tests do not timeout
  • Remove conditional DB persistence
  • Merge pull request #2802 from esperecyan/fix-random-uuid-string-length. Make `_randomUuid()` always return string of length 36.
  • Merge remote-tracking branch 'sxderp/monkey-menu-visual-glitches'
  • Merge remote-tracking branch 'sxderp/use-persistent-storage'

New in Greasemonkey 4.3 Beta 1 (Jan 26, 2018)

  • Use SVG icons
  • Also use SVG icons for browser_action
  • Avoid the error which be occured by `opennerTabId` in Firefox 52 ESR.
  • Adjust Monkey Menu to look and behave like native FF
  • Fix svg rendering for FF <= 52
  • Moved user-script detection to background scripts
  • Merge branch 'master' into svg-icon
  • Switch fully to SVG icon.
  • Scale script while maintaining aspect ratio.
  • Align user script and default UI icons.
  • Maintain default cursor.
  • Merge branch 'monkey-menu-style'
  • Monkey menu: bigger icons.
  • Separate value-store implementation from messaging
  • Add ValueStore tests
  • Moved user-script detection to background scripts
  • Adjust formatting per #2719
  • Match .user.js files on content types with parameters
  • Dont open install dialog if GM is disabled
  • Move value-store warnings to a single line
  • Merge remote-tracking branch 'sxderp/detect-scripts-in-background' in to detect scripts in background
  • Merge branch 'detect-scripts-in-background'
  • Merge remote-tracking branch 'esperecyan/fix-gm-open-in-tab-place'
  • Merge remote-tracking branch 'sxderp/separate-value-store-from-messages'
  • Move strings into locales.
  • Missing locale strings.
  • Move SVGs from css into their own files.

New in Greasemonkey 4.2 (Jan 22, 2018)

  • Fixed bugs:
  • Use of the magic TLD is now reflected correctly in the monkey menu user script list. (#2795)<br>
  • Privileged API handlers will now refuse to continue without the appropriate @grant entry. (#2777)<br>
  • Native xmlHttpRequest now handles URLs relative to the page correctly. (#2771)<br>
  • When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. (#2652)<br>
  • New features:
  • Firefox for Android is marked compatible. <br>
  • Improved keyboard accessibility of the Monkey Menu. (#2794)
  • Added a save button to the user script editor (Ctrl-S still works). (#2785)<br>
  • User scripts will execute on local file:///s. (#2693)<br>
  • The script install dialog appears in a dialog, not a browser tab. (#2641)<br>
  • When the ==UserScript== block contains an unrecognized key, the entire key name is indicated in the warning message. (#2684)<br>

New in Greasemonkey 4.2 Beta 3 (Jan 15, 2018)

  • Repair basic `.tld` support for @include
  • Specify openerTabId for tabs from GM.openInTab
  • Merge pull request #2799 from piroor/patch-1
  • Safely handle bad userscript save transactions
  • Merge pull request #2750 from Sxderp/prevent-editor-desync-on-transaction-fail
  • Safely handle bad editor save transactions
  • Install dialog: close the window.
  • Better monkey menu apearance on Android.

New in Greasemonkey 4.1 (Dec 12, 2017)

  • Fixed bugs:
  • For GM.xmlHttpRequest, set the finalURL (#2692) and support onprogress (#2712).<br>
  • Update @match handling to be consistent with pre-existing behavior. (#2673, #2715)<br>
  • Handle user scripts that end with a comment. (#2670)<br>
  • Fix changing @noframes in the user script editor. (#2637)<br>
  • New features:
  • The "save" action in the user script editor is platform natural. (#2690)<br>
  • Add a "new script" feature, for creating a new user script from scratch. (#2645)<br>
  • The script list in the monkey menu is split into "active" and "inactive" sections. (#2585)

New in Greasemonkey 4.0 (Nov 3, 2017)

  • Greasemonkey has been a Firefox extension for well over a decade, with version 0.3.5 dating from 2005. We've grown and changed a lot over that time. With the upcoming Firefox 57 release, we need to change even more. Mozilla is completely replacing the extension system in Firefox, to align with the budding Browser Extension standard, based on/shared with Google Chrome.
  • As a result, version 4 of Greasemonkey is a nearly complete re-write. Its interface and feature set have been rebuilt in order to best to work with coming Firefox versions. A variety of compromises have been made. We've elected to make a rare backwards incompatible change.

New in Greasemonkey 4.0 Alpha 12 (Oct 31, 2017)

  • Fix eval content syntax, broken in 0459b05.

New in Greasemonkey 4.0 Alpha 8 (Oct 19, 2017)

  • Made tabs a global constant
  • Merge pull request #2626 from Sxderp/define-tabs-as-global-const
  • Define `unsafeWindow` in script scope.
  • Code style & deduplication.
  • Move warning annotation to correct line.
  • Ignore non-meta-line comments inside meta block.
  • Merge branch 'metadata-lint'
  • Version bump: 4.0alpha8

New in Greasemonkey 4.0 Alpha 7 (Oct 16, 2017)

  • This version is now packaged as a pure WebExtension, and is thus compatible with Firefox 57+.

New in Greasemonkey 4.0 Alpha 6 (Oct 5, 2017)

  • Make MatchPattern compatible with URL input.
  • Ignore more errors in script execution path.

New in Greasemonkey 3.17 (Oct 4, 2017)

  • Bug fixes related to data migration to WebExtension.

New in Greasemonkey 3.16 (Sep 29, 2017)

  • Small bugfixes to WebExtension data migration.

New in Greasemonkey 3.15 (Sep 29, 2017)

  • Small updates and bugfixes to WebExtension data migration.

New in Greasemonkey 4.0 Alpha 4 (Sep 29, 2017)

  • Do not mark the user script wrapper `async`.
  • Move `userScript` definition.
  • Only update editor when this script changes.
  • Don't show %20 in editor tabs.
  • Improved 'bad execution' error logging.
  • Use CodeMirror search.

New in Greasemonkey 3.14 (Sep 26, 2017)

  • Fix the bug (introduced in 3.12) which caused Firefox to hang and never shut down correctly. (#2573)

New in Greasemonkey 3.13 (Sep 25, 2017)

  • Repair migration of @match data into webextension.

New in Greasemonkey 3.12 (Sep 22, 2017)

  • Fixed bugs:
  • Repair rare breakage in GM_getValue/GM_setValue. (#2506)
  • New features:
  • Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. (#2551)

New in Greasemonkey 3.12 Beta 1 (Sep 14, 2017)

  • Migrate data to WebExtension space.
  • Fix rare breakage of sendSyncMessage().

New in Greasemonkey 3.11 (Apr 27, 2017)

  • Repair broken language check. (#2488)
  • Compatibility with new strict process sandbox. (#2485)

New in Greasemonkey 3.10 (Feb 23, 2017)

  • Fixed bugs:
  • Fix compatibility with Firefox 54.

New in Greasemonkey 3.9 (Dec 28, 2016)

  • Feature enhancements:
  • Improve the performance of GM_getValue/GM_setValue. (#2197, #2025)
  • Add a rich tooltip to the Greasemonkey toolbar button. (#2377, #2418)
  • GM_getResourceText supports a second (responseType) parameter, for better compatibility with binary files. (#2376)
  • Fixed bugs:
  • Global exclude rules no longer require a Firefox restart to take effect. (#2410)
  • A web page whose url ends in ".user.js" could fail to load. (#2407)
  • A script whose name ends in ".db" could fail. (#2402)

New in Greasemonkey 3.6 (Nov 20, 2015)

  • Feature enhancements:
  • Better support for scripts with a very large number of @include/@exclude/@match rules. (#2318)
  • Display a notification to the user when there is a problem parsing an edited script. (#2319)
  • In GM_info the serving URL for an @resource is listed. (#2281)
  • Added support for @run-at document-idle. (#2109)
  • Fixed bugs:
  • Repair compatibility of @resource files and certain serving contexts for recent versions of Firefox. (#2326)
  • Correctly refresh files when changing (e.g.) @require lines in a script. (#2311)
  • Repaired binary behavior of GM_xmlhttpRequest. (#2265)

New in Greasemonkey 3.5 (Oct 20, 2015)

  • Feature enhancements:
  • Restored "more" link in Add-ons Manager, add metadata support to fill it. (#1944)
  • The Options window can (usually) be resized. (#2194)
  • Allow scripting about:reader pages. (#2195)
  • Various performance/efficiency enhancements. (#2243, #2259)
  • Allow .cmd file as editor on Windows. (#2271)
  • Fixed bugs:
  • The GM_getValue API behavior matches the documentation. (#2151)
  • Repaired the Greasemonkey menus. (#2270, #2273, #2276)

New in Greasemonkey 3.4.1 (Sep 18, 2015)

  • This is a quick release to fix one data corruption bug introduced in 3.4: Update checks can cause a script to be removed, rather than updated (#2274).

New in Greasemonkey 3.4 (Sep 12, 2015)

  • Feature enhancements:
  • Added features to GM_openInTab.
  • Improved performance and memory efficiency.
  • Remember user script sort order.
  • Fixed bugs:
  • Work around a Firefox bug that broke GM_openInTab when e10s is not enabled.
  • Fixed a bug in the "view script source" feature preventing the tab from opening correctly.
  • Correctly handle uninstalled scripts and user @match preferences through Sync.
  • Improved the behavior of cloneInto to work in more cases.
  • Scripts that are run-at document-start will run on about:blank.

New in Greasemonkey 3.3 (Jul 24, 2015)

  • Feature enhancements:
  • Allow the script preference window flex size, especially useful for smaller displays.
  • The script preference editor now allows editing @match (as well as @include and @exclude like always).
  • GM_getResourceURL is now compatible with favicons.
  • Web sites should not be able to detect that Greasemonkey is installed.
  • Fixed bugs:
  • Web pages whose URLs end with .user.js should load properly.
  • Repair memory leak related to GM_registerMenuCommand().

New in Greasemonkey 3.2 (May 29, 2015)

  • Feature enhancements:
  • The GM_openInTab() API officially supports an open_in_background argument, and always respects user configuration when not specified. (#2105, #2106, #2107)
  • The GM_xmlhttpRequest() API is now compatible with responseType: 'arraybuffer'. (#2045)
  • Script updates always check the server, never using the browser cache. (#1878)
  • Now @match rules can be customized in script settings. (#1703)

New in Greasemonkey 3.1 (Mar 21, 2015)

  • Fixed bugs:
  • Fix @noframes feature.
  • Fix injecting scripts into about:blank.
  • Display localized script name/description correctly.
  • Correct GM_openInTab() to only open one tab.
  • Repair default script editor.

New in Greasemonkey 3.0 (Mar 13, 2015)

  • Multi process Firefox compatibility.

New in Greasemonkey 3.0 Beta 1 (Feb 20, 2015)

  • Support for Firefox Multi-process (Electrolysis) mode

New in Greasemonkey 2.3 (Oct 29, 2014)

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

New in Greasemonkey 2.2 (Aug 28, 2014)

  • 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)

New in Greasemonkey 2.1 (Jul 22, 2014)

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

New in Greasemonkey 2.0 (Jun 18, 2014)

  • 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 SDK. In 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.)
  • GM_addStyle() now returns the created element.
  • Update checks will attempt to read a .meta.js file for scripts installed from any site on the internet.
  • Remove all references to the now defunct userscripts.org website.
  • Privileged scripts' event listeners will run, even when content JavaScript is disabled.
  • Turn on Firefox Sync support by default.
  • GM_xmlhttpRequest() can set the resposeType parameter on the request.
  • Fixed bugs:
  • A rare NS_ERROR_MALFORMED_URI error when running certain scripts has been resolved.
  • Fixed a bug when parsing @match rules which could destroy configuration state.
  • A bug fix for the @match metadata, to correctly match bare domain names.
  • The database where persistent values are stored correctly vacuums its unused space.
  • A relative @require URL will now work correctly.
  • The options window will flex to fit on small (or large) screens.
  • Greasemonkey's integration with Firefox Sync should no longer cause unnecessary prompts when a master password is set.

New in Greasemonkey 1.15 (Feb 12, 2014)

  • 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)

New in Greasemonkey 1.14 (Jan 16, 2014)

  • Certain script install/uninstall actions could cause Firefox to fail to open

New in Greasemonkey 1.14 Beta 1 (Jan 11, 2014)

  • Firefox won't start with Greasemonkey since trying to remove a userscript
  • Clean up Sync code from 1.13 betas
  • GM 1.13,cannot open firefox
  • Uninstalling script breaks Firefox
  • Firefox Nightly invisible w/ Greasemonkey 1.13 beta 5 & 6

New in Greasemonkey 1.13 (Dec 5, 2013)

  • 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)

New in Greasemonkey 1.12 (Aug 16, 2013)

  • Enhancements:
  • The template for the New Script... feature is now customizable (#1753)
  • Users can now force a remote update even for scripts where it was otherwise intentionally disabled. (#1743)
  • Fixed bugs:
  • A situation that could cause script details displayed in the Add-ons Manager to be incorrect was resolved. (#1778)
  • 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.) (#1771)
  • Script updates will detect Coral CDN failures and use direct checks instead. (#1722)

New in Greasemonkey 1.12 Beta 3 (Aug 9, 2013)

  • Remove loose global function
  • SSL error/warning when opting in to stats
  • Modified date shown in about:addons is wrong - Part 2
  • Scratchpad - editing a script (disable more items, first running) - all, GM_log truncates at NULL byte
  • Scratchpad - editing a script (disable more items)
  • Ad "Hide nonsensical Scratchpad menus when editing user scripts"
  • GM_log loading with @grant but not generating log output
  • Using the (default) scratchpad editor leaves confusing "run" menu items
  • Installing userscript from HTTP-source causing errors when NoScript is installed.
  • Custom meta-data block format. Fixes #1753
  • Own meta-data block, include jQuery, author
  • Enable manual update on modified userscripts

New in Greasemonkey 1.11 (Jul 19, 2013)

  • Enhancements:
  • The GM_info object now has a scriptSource property, like Tampermonkey.(#1738)
  • Fixed bugs:
  • Scripts will no longer run on data: scheme URLs. This is a security enhancement. (#1767)
  • Fixed errors logged to the console when opening the "Websites..." Monkey Menu item. (#1762)
  • Fix GM_openInTab() behavior when moving tabs across windows. (#1758)

New in Greasemonkey 1.10 (Jun 21, 2013)

  • Fixed bugs:
  • Fix some corner cases with the value displayed for a script's modified date in the Add-ons Manager. (#1744)
  • Fix GM_openInTab() behavior with relative URLs. (#1719)
  • Enhancements:
  • Navigating to a user script while Greasemonkey is disabled will display a warning, in case the intent was to install the script. (#1727)
  • Added a context parameter to GM_xmlhttpRequest(). (#1725)
  • Added GM_setClipboard() API method. (#1514)

New in Greasemonkey 1.9 (May 14, 2013)

  • Keep the script name and version in sync, for the Add-ons Manager display. (#1734, #1710)
  • Fix launching editor from script preferences window, when certain extended characters are in the @name or @namespace. (#1732)
  • Fix automated script updates (the first automatic update could cause future updates to stop working). (#1723)
  • The abort() method for GM_xmlhttpRequest was not permissioned properly. (#1714)

New in Greasemonkey 1.8 (Feb 22, 2013)

  • Enhancements:
  • Added shortcuts to the various Greasemonkey web sites in the monkey menu. (#1704)
  • The redirectionLimit option has been added to GM_xmlhttpRequest(). (#1690)
  • By default the script editor is now Scratchpad, which is built into Firefox. This can be configured in the Greasemonkey Options dialog. (#1688)
  • Bug fixes:
  • Scripts work at about:blank again. (#1696)
  • Drag-and-drop into the Add-ons Manager works now. (#1663)

New in Greasemonkey 1.8 Beta 2 (Feb 2, 2013)

  • Added Websites submenu to monkeymenu
  • Fix typo causing unnecessary array duplication
  • Dependencies of scripts installed from clipboard are not downloaded
  • Fix undefined variable access.
  • Translation of strings in TODO items
  • feature request: redirectionLimit
  • Make Scratchpad a supported editor
  • Drag'n' drop into AOM: This add-on could not be installed because it appears to be corrupt

New in Greasemonkey 1.7.1 (Jan 19, 2013)

  • A change to the Magic TLD feature in Greasemonkey 1.6 had adverse performance impact, when enough installed scripts make use of this feature. (#1689)
  • Two translations were missing from the cs locale. (#1687)

New in Greasemonkey 1.6 (Jan 11, 2013)

  • Enhancements:
  • Properly run scripts on pages that specify only a username in the URL. (#1677)
  • Tweak the "New User Script.." feature which allows adding a user script from the keyboard so that it's harder to overwrite installed scripts. (#1672)
  • Add the line number to the "use of return outside functions is deprecated" warning. (#1670)
  • Update the pattern matching for the Magic TLD part of @include rules. (#1351)
  • Bug fixes:
  • Calling window.location.replace() with only an #anchor part of the URL no longer fails. (#1584)

New in Greasemonkey 1.5 (Nov 20, 2012)

  • Enhancements:
  • Improve the clarity of the error message when installing a script with a missing sub-resource. (#1666)
  • Create opt-in only statistics gathering. See the post about this. (#1651)
  • 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. (#1497)
  • Bug fixes:
  • Fix a failure to download updates when one is found. (#1669)
  • Fix the enable/disable pattern on the User Script Commands sub menu. (#1665)
  • Do not break the script when adding a bad (i.e. 404) URL as a new @require. (#1661)
  • Avoid loops when the resource at downloadURL and updateURL disagree about the newest available version. (#1659)
  • Fix when relative URLs are provided for downloadURL or updateURL. (#1658)

New in Greasemonkey 1.5 Beta 1 (Nov 12, 2012)

  • On install script, 404 returned when an @require dependency not found
  • The "user script menu commands" menu does not enable/disable properly
  • Adding @require kills script after updating to 1.4
  • Combining downloadURL and updateURL can cause update loops.
  • DownloadURL and updateURL metadata fail with relative URLs
  • nsITransferable has been changed in Gecko 16.
  • pref called in potentially dangerous manner
  • Create opt-in statistics gathering
  • 'Available Updates' tab shows the currently installed script version, not the updated version

New in Greasemonkey 1.4 (Oct 8, 2012)

  • Enhancements:
  • 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.
  • Bug fixes:
  • Fix updates (see enhancement above). Especially: a bug that installed updates far too often, when they should not have been. (#1646, #1647)
  • Fix an obscure case which could cause Firefox to crash in Ubuntu Linux. (#1632)

New in Greasemonkey 1.3 (Sep 28, 2012)

  • Enhancements:
  • The "Show Script Source" button in the install dialog is enabled as soon as the script source is downloaded. (#1640)
  • Use new style non-modal popup notifications where old toast style notifications were used. (#1563)
  • Bug fixes:
  • A false "update" was installed on every page load. (Cause: #1636 Fix: #1643)

New in Greasemonkey 1.1 (Sep 10, 2012)

  • Enhancements:
  • Compatibility with upcoming Firefox changes.
  • Bug fixes:
  • 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().) (#1623)
  • 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.) (#1620)
  • Fixed the character encoding of the es-CL translation. (#1616)
  • Fixed the display of the "Enabled" check mark in the monkey menu. (#1611)
  • Fixed the "Show Script Source" button for some scripts. (#1609)
  • Killed the final remaining zombie compartment (i.e. memory leak). (#1608)

New in Greasemonkey 1.0 (Aug 24, 2012)

  • Enhancements:
  • New metadata, @grant, specifies which special APIs a user script will
  • have access to. Specifying "@grant none" means no special API access, and
  • thus no security restrictions.
  • The metadata @unwrap 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 don't do this.
  • Require at least Firefox 14.0 (no more Firefox 3 compatibility).
  • Scripts that "@run-at document-start" have a valid document object to modify, E.G. for adding tags; but still before any part of the document is loaded.
  • GM_xmlhttpRequest() accepts a "timeout" option.
  • GM_getResourceURL() works with a special protocol handler. (This is more
  • efficient/faster than the data: URI encoding used previously.
  • The standard Firefox web developer console works for "console.log()" et al.
  • Error reporting is much more consistent and obvious than in the past.
  • Bug fixes:
  • Scripts with missing or broken "==UserScript==" metadata will work.
  • The "alert()" workaround is not applied for Firefox versions that do not exhibit this bug.
  • When downloading a script not encoded in UTF-8, display an error message to the user (rather than failing silently).
  • The "show script" button in the install dialog is disabled until the download of
  • the script file is complete.

New in Greasemonkey 0.9.22 (Aug 2, 2012)

  • Fix memory leak related to GM_registerMenuCommander. (#1578)

New in Greasemonkey 0.9.21 (Aug 1, 2012)

  • Fix memory leak related to GM_registerMenuCommander. (#1578)

New in Greasemonkey 1.0 Beta5 (Jul 16, 2012)

  • Enhancements:
  • New metadata, @grant, specifies which special APIs a user script will have access to. Specifying "@grant none" means no special API access, and
  • thus no security restrictions.
  • Require at least Firefox 4.0 (no more Firefox 3 compatibility).
  • Scripts that "@run-at document-start" have a valid document object to modify, E.G. for adding tags; but still before any part of the document is loaded.
  • GM_xmlhttpRequest() accepts a "timeout" option.
  • GM_getResourceURL() works with a special protocol handler. (This is more
  • efficient/faster than the data: URI encoding used previously.
  • The standard Firefox web developer console works for "console.log()" et al.
  • Bug fixes:
  • Scripts with missing or broken "==UserScript==" metadata will work.
  • The "alert()" workaround is not applied for Firefox versions that do not exhibit this bug.

New in Greasemonkey 1.0 Beta4 (Jun 29, 2012)

  • Warnings about @grant usage are less invasive.
  • All "@grant none" scripts run directly in the content page, with no sandbox, and just an anonymous wrapper to provide a separate scope between each script and between the script and the page.
  • Compatibility with the standard Web Console, when Firefox is not installed/enabled.

New in Greasemonkey 1.0 Beta3 (Jun 29, 2012)

  • New "@grant" metadata; with "@grant none" scripts run in content scope without security restrictions.
  • Firefox version 4.0 or higher required.
  • Fix GM_ API failure from beta2.

New in Greasemonkey 1.0 Beta2 (Jun 29, 2012)

  • New "@grant" metadata; with "@grant none" scripts run in content scope without security restrictions.
  • Firefox version 4.0 or higher required.

New in Greasemonkey 1.0 Beta1 (Jun 29, 2012)

  • New "@grant" metadata; with "@grant none" scripts run in content scope without security restrictions.

New in Greasemonkey 0.9.20 (May 14, 2012)

  • Bug fixes:
  • A change in 0.9.19 broke setTimeout() for a variety of cases, that has been reverted. (#1549, #1553)
  • Scripts with long names and/or file names could fail to install in Windows. (#1546)

New in Greasemonkey 0.9.19 (May 10, 2012)

  • Enhancements:
  • A custom wrapper to make setTimeout() work even when Javascript is disabled. (#1209)
  • Restored the "script installed successfully" toast notification. (#1511)
  • 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. (#1523)
  • Bug fixes:
  • Specifying a script editor in a non-ASCII folder will work (Firefox 4+ only). (#1173)
  • Scripts installed while the Add-Ons Manager is open will show their icon. (#1535)

New in Greasemonkey 0.9.18 (Mar 1, 2012)

  • Enhancements:
  • Automatic update checking can be enabled, without automatically installing updates. (#1455)
  • Script updating is enabled by default. Please read the blog post describing this new feature. (#1462, #1463, #1480)
  • Bug fixes:
  • Add-on Manager shows correct data when re-installing (e.g. to update) a script. (#1476)
  • Re-installed scripts are put into the same directory as the original. (#1515)
  • The matches property of GM_info is now a list of (pattern) strings. (#1516)

New in Greasemonkey 0.9.17 (Feb 13, 2012)

  • Bug fixes:
  • Error: "aForced is not defined". (#1517)

New in Greasemonkey 0.9.16 (Feb 13, 2012)

  • Enhancements:
  • Expose information (including Greasemonkey version) to user scripts via GM_info. (#1452; also see #1512)
  • Track the install time of scripts. (This is designed to better support automatic updates for scripts) (#1513)
  • Bug fixes:
  • Editing script from the "New User Script" feature, to change any remote dependency (@icon, @require, @resource), could the script to malfunction. (#1504)
  • Enabling/disabling scripts from the status bar menu (Firefox 3 only). (#1506)
  • Incompatibility with GreaseFire. (#1507)
  • Failures during "Check for Updates" from the Add-on manager. (#1509)

New in Greasemonkey 0.9.15 (Jan 26, 2012)

  • Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. (#1466, #1502)
  • Certain @requires can break a script, due to javascript semicolon insertion rules. (#1491)
  • Installing a script from local disk failed in 0.9.14. (#1501)

New in Greasemonkey 0.9.14 (Jan 26, 2012)

  • Enhancements:
  • For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. (#1419)
  • Bug fixes:
  • Revert the changes to GM_xmlhttpRequest() in 0.9.13 (which were supposed to have no effect, but created a subtle bug). (#1472)
  • Guarantee that we do not create a specific kind of memory leak. (#1482)

New in Greasemonkey 0.9.13 (Nov 20, 2011)

  • Enhancements:
  • Script updates install automatically. (#1442)
  • 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 (#1455), so checking is still not enabled by default.
  • Provide an Options item in the Monkey Menu. (#1447)
  • Add a Cancel button to the Options window. (#1454)
  • Bug fixes:
  • GM_getResourceText() was broken. (#1438)
  • You can properly select an application (bundle) for the editor on Mac OS X. (#1439)
  • Fix GM_openInTab for Firefox 3. (#1444)
  • Fix when pages reassign the location during page load. (#1445)

New in Greasemonkey 0.9.12 (Oct 11, 2011)

  • Enhancements:
  • Script update checking (limited!). (#1053)
  • Scripts run with the latest available version of Javascript. (#1403)
  • Bug fixes:
  • Shared window object. (#1278)
  • Right-clicking a script in the Monkey Menu works, even when no editor is configured. (#1405)
  • Fix launching the editor. (#1409)
  • Scripts with @match could break loading all other scripts. (#1414)
  • When browsing local files, menu commands for all scripts (on all tabs) no longer display. (#1424)
  • Fix GM_openInTab(). (#1428)

New in Greasemonkey 0.9.12 Beta 1 (Sep 17, 2011)

  • Includes the fix for #1409; sometimes setting/launching the script editor would fail.

New in Greasemonkey 0.9.11 (Sep 8, 2011)

  • Apply a work-around for the problem Tab Mix Plus causes when attempting to open links in a new tab.

New in Greasemonkey 0.9.10 (Sep 6, 2011)

  • Bug fixes:
  • You will be prompted to pick a new editor if the existing setting is an invalid path. (#1386)
  • Changing views within the Add-ons Manager could cause the user script sort order to be wrong. (#1394)
  • Enhancements:
  • When a script causes an unhandled error, the display in the Error Console will be a bit easier to read. (#1396)
  • When Growl is not installed, Greasemonkey's notifications are less obtrusive. (#1397)
  • A range of internal code clean ups. (#1395, #1398, #1399, #1400, #1401)

New in Greasemonkey 0.9.9 (Sep 6, 2011)

  • Bug fixes:
  • Pressing 'back' could rarely cause a script to run twice on the same page. (#1083)
  • Extended characters would get corrupted in new scripts. (#1236, #1315)
  • A full disk could cause loss of data (especially config.xml). (#1301)
  • Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: #1389, always for certain scripts: #1391)
  • Enhancements:
  • GM_xmlhttpRequest() provides progress events. (#1081)
  • GM_xmlhttpRequset() provides a synchronous mode. (#1269)
  • By popular demand: a UI for editing @includes and @excludes. (#1362)

New in Greasemonkey 0.9.8 (Aug 8, 2011)

  • Bug fixes:
  • User scripts cannot run in any about: pages besides about:blank.
  • Enhancements:
  • Global, user specified, @exclude rules. (#1002)
  • New @run-at metadata imperative, which supports value document-start, as well as the standard document-end behavior.
  • Support for @match metadata imperative, as implemented by Google Chrome.
  • Support for full regular expression syntax in @include/@exclude rules

New in Greasemonkey 0.9.7 (Jul 21, 2011)

  • Bug fixes:
  • Scripts with broken @icons will install, just with no icon. (#1214)
  • Editing the @icon line of a script will take effect immediately. (#1215)
  • Remote resources (@require, @resource, @icon) that redirect to other URLs will now work. (#1222)
  • Enhancements:
  • Compatibility with Firefox 6 and 7. (#1357)
  • GM_openInTab() will respect the insertRelatedAfterCurrent preference. (#1370)

New in Greasemonkey 0.9.6 (Jul 6, 2011)

  • Bug fixes:
  • GM_openInTab() fails in Firefox 3. (#1361)
  • Firefox 5: Error in Add-ons Manager. (#1367)
  • Enhancements:
  • Add "get user scripts" link to the Add-ons Manager. (#1213)
  • Pass site cookies when downloading scripts. (#1359)

New in Greasemonkey 0.9.5 (Jul 6, 2011)

  • Bug fixes:
  • Installing and uninstalling the same script many times does not work properly. (#1353)
  • GM_xmlhttpRequest() does not work in Firefox 5 betas. (#1354)
  • Introduced in 0.9.4:) Cannot enable nor disable scripts. (#1355)
  • Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. (#1356)
  • Enhancements:
  • The installation dialog shows the script version, if provided with @version. (#1349)

New in Greasemonkey 0.9.3 (May 14, 2011)

  • Bug fixes:
  • Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar.
  • Navigating to a .user.js inside a frame works like anywhere else
  • The list of user scripts in the Add-ons Manager would sometimes forget its sort order
  • Compatibility enhancement with AutoPager (broken in 0.9.2).
  • 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).
  • Enhancements:
  • Passing the Referer header works, for GM_xmlhttpRequest().
  • Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter).

New in Greasemonkey 0.9.2 (Apr 13, 2011)

  • Bug Fixes:
  • Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4.
  • Remove "accelerator" keys from GM_registerMenuCommand().
  • Work around incompatibility with Personas Plus extension.
  • Enhancements:
  • Provide a toolbar button, and remove the status bar icon for Firefox 4.
  • When re-installing a script (e.g. for an update), keep it in the same execution order.
  • Keep the add-ons manager view up to date when changing installing/enabling/disabling/etc) user scripts.

New in Greasemonkey 0.9.1 (Feb 3, 2011)

  • This is primarily a quick release to deal with bugs found in 0.9.0.
  • Bug fixes:
  • Fix user script sandbox wrapping. This deals with lots of problems like eval(). If your script(s) stopped working with 0.9.0, this should fix them.
  • Fixed rare bug when installing scripts.
  • Fixed problems with relative @require imperatives.
  • New features/improvements:
  • Allow sorting by descending (as well as ascending) execution order.

New in Greasemonkey 0.9.0 (Feb 3, 2011)

  • New Features:
  • Compatibility with Firefox 4! Note that because of Firefox bug 612025 this is somewhat unsafe for 4.0b7 to 4.0b9 (inclusive). Beta 10 should be fixed (the nightly build on January 14th definitely is). 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.
  • Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on.
  • A global options dialog, where the script editor can always be selected.
  • Live in-place editing for the entire script, including metadata (@name, @require, @include, @exclude, etc.).
  • Web pages that end in .user.js are loaded as normal, instead of being installed as a user script.
  • Bug fixes / minor enhancements:
  • All Greasemonkey windows respond to standard close window keyboard shortcuts.
  • Support for @icon metadata imperative, displayed in the new add-ons manager integration.
  • Support user and password for GM_xmlHttpRequest().
  • Support @version metadata imperative.
  • Suppress spurious Error: not well-formed (// ==UserScript==) error messages.
  • The "install" menu item is removed

New in Greasemonkey 0.8.20100408.6 (Feb 3, 2011)

  • Features:
  • Add a hidden preference to allow greasing the unmht: scheme.
  • Allow relative URLs to be used for GM_xmlhttpRequest(), just like standard XMLHttpRequest.
  • Performance enhancements and code improvements to internal logic behind @include and @exclude rules.
  • Added translations: ca-ES, cs, fr, nl, sr-RS, vi.
  • Bug fixes:
  • GM_xmlhttpRequest() can fail when Object.prototype has been modified.
  • Two warnings upon making new script via "New User Script".
  • Installing scripts from the hard drive (instead of via the web) can fail.Link
  • Fix a flaw that could allow websites to prevent Greasemonkey from running.
  • Error "this.menuCommanders is undefined" bug when closing a browser window.
  • Error "ScriptDownloader is not defined" Linkwhen performing view source on a user script.

New in Greasemonkey 0.8.20100211.5 (Feb 3, 2011)

  • Add an abort() method for GM_xmlhttpRequest.
  • Increase compatibility with bleeding-edge Firefox versions.
  • Display a "welcome" page to new users when they install.
  • Fix hooking into the console object for Firebug 1.5.

New in Greasemonkey 0.8.20091209.4 (Feb 3, 2011)

  • Properly specify the .finalUrl for GM_xmlhttpRequest results

New in Greasemonkey 0.8.20090123.1 (Feb 19, 2009)

  • Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.
  • Fix for ticket #111 (anomalous separators in the monkey menu).
  • Add GM_deleteValue() and GM_listValues() APIs (#38).
  • Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the @unwrap metadata imperative, #108).
  • Improved interaction with the Firebug console (#122, #204).