Wednesday, September 23, 2015

The Location Hack Is Dead

For most of Greasemonkey's history (since version 0.5 in 2005, until version 2.0 in 2014, still today if the script @grants privileged APIs) scripts were guaranteed to operate in a restricted scope.  Interacting with scripts on the page was difficult.  The "location hack" was a technique designed to bridge this gap.

As of Firefox 39.0.3 (due to a security related update) the location hack was broken.  All the user scripts which relied on it broke along with that update.

This post is just to get the word out that the location hack is no longer necessary.  Read more at the wiki's Content Script Injection page, but the short answer is that if your script previously needed the location hack, you should be able to replace it with window.eval() and continue on your way.

Thursday, September 17, 2015

Greasemonkey 3.4.1 Release

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

Friday, September 11, 2015

Greasemonkey 3.4 release

The entire list of bugs handled in this release is also available via the 3.4 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).

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