A new version of the Greasemonkey Firefox extension has been released.

Greasemonkey lets you customize the way web pages look and function in Firefox, and comes with hundreds of pre-written scripts for the most common options. It also lets you write your own.

There are a number of changes in the new version, some of which may cause incompatibilities with existing scripts.

The most important change this applies to is in the way @grant is applied. The new version has @grant none as the default, so if you don’t specifically request access to an API, it won’t be implied.

However, so long as your scripts don’t interact with unsafeWindow, these changes will not affect you. If your scripts do interact with it, though, and you don’t specifically request grants, you’ll need to go and do so in order to make your scripts work correctly. @grant lets you specify which API methods your scripts have access to.

The other change that could cause problem is an alteration in the way Greasemonkey's privileged sandbox works. It has been updated to match the changes to unsafeWindow for Mozilla’s Add-on SDK. In order to write values to unsafeWindow you will need to use the new methods cloneInto(), exportFunction(), and/or createObjectIn(). From Firefox 30, the Add-on SDK no longer allows content scripts to use unsafeWindow or window.wrappedJSObject to make JavaScript objects available to content. The post about the new version on the blog, Greasespot.net says that this change improves the extension's stability, reliability and security.

Other changes worth mentioning include default support for Firefox Sync and event listeners for privileged scripts running even when content JavaScript is disabled.