Monday, May 13, 2013

Greasemonkey 1.9 Release

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

Thursday, February 21, 2013

Greasemonkey 1.8 Release

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

Thursday, January 17, 2013

Greasemonkey 1.7 Release

The entire list of bugs handled in this release is also available via the 1.7 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version, but it's available on the all versions page immediately.

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

Bug fixes:
  • 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)

Thursday, January 10, 2013

Greasemonkey 1.6 Release

The entire list of bugs handled in this release is also available via the 1.6 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version, but it's available on the all versions page immediately.

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

Wednesday, December 12, 2012

The First Anonymous Statistics Summary

For context, see the previous post Anonymous Statistic Gathering.  As of release 1.5 almost four weeks ago we added opt-in statistics gathering.  The goal is to let us know the sorts of things that real users are doing, to help inform future development decisions.  This is the first post where I start to look at the data that's been gathered, in aggregate.

Let me stress that point for a moment: in aggregate.  It is my intent to never publish or reveal specific users' data in any way.  When I do it will be in aggregate, like the rest of the post.  I actually never plan on even reading the specific rows carefully, unless there is a very specific issue to address.  That's part of the reason that I'll have no links or sources for any of the data below, like I would do for other things.  You've just got to trust me that it's accurate, I'm not sharing specifics on purpose.

That said, the first interesting piece of data is the opt-in rate.  According to Mozilla's statistics, Greasemonkey 1.5 has 2,092,151 users (basically everyone is using 1.5 besides some users still on 0.9, presumably also on older Firefox versions).  There are 23,790 distinct users sending data, which is just 1.14%.  But still hopefully enough

The distribution of submissions is interesting.
Submissions peak on Wednesdays, as version 1.5 was first made available on November 19th (the 20th, the next full day, being a Wednesday) with a weekly reporting period.

Among the users reporting data, by far the most common number of scripts installed is one; nearly half of all reporting users have only one script installed.  The next most common configuration is zero scripts installed!  While four users are reporting one hundred scripts or more installed, 95% of all users have ten or fewer.
Zero scripts installed by over twenty percent of users makes me worry that there might be a recording/reporting bug.  So this is worth revisiting.  Or if it's correct, it might warrant some sort of messaging to such users to coach them into getting use out of Greasemonkey.

The next interesting thing we can do is look at metadata imperative usage, where we are counting scripts by the number of times they are installed by real users, not once each for all that exist like we've done before.
This looks pretty familiar, if you followed the link above.  The top eight come in the same order, with similar percentages, following a similar power law curve.  Grant is used in 9.09% of scripts.

Finally one more number worth watching.  Today, just a bit under two thirds of installed scripts depend on implicit @grant detection.  Almost all of the remaining third need no grants at all, but it will be some time before we can remove that backwards-compatibility feature.  On the other hand, I'm currently detecting exactly zero scripts with explicit grants; I know that's wrong because I have some installed, and because usage of grant was at 9% in the graph above.  I'll need figure whether I'm reading the data wrong, or if it's being reported wrong.

Monday, November 19, 2012

Greasemonkey 1.5 Release

The entire list of bugs handled in this release is also available via the 1.5 milestone on GitHub. Note that as always it takes some time for Mozilla to review the new version, but it's available on the all versions page immediately.

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

Wednesday, November 07, 2012

Anonymous Statistic Gathering

In release 1.5 Greasemonkey will add anonymous statistic gathering.  This feature will be opt in only.  Users will be asked to opt in, but no data will be transmitted unless they do.

For users that do opt in, a randomly generated persistent ID will identify this Greasemonkey installation as being distinct from others, and then certain data will regularly be gathered and transmitted to a central server for analysis along with this ID.  The goal is to improve Greasemonkey by better understanding how real users go about using it.

We intend to collect data like:
  • How many user scripts are installed
  • Which internet sites those scripts were installed from
  • What sort of API features those scripts use
  • What sort of Greasemonkey features users actually exercise
  • The exact browser and operating system that Greasemonkey is running on
We have written a privacy policy to explain exactly how this data will be used.  The short version, however, is that we never intend to share this data in anything but an aggregated form.  For an example of the sort of aggregated data we mean, see the Greasemonkey API Usage post.

To control this feature, a new check box is being added to the Greasemonkey Options dialog.


If you opt yourself in and later want to opt back out, or vice versa, you can use this check box.  The Greasemonkey Options dialog can be found through the monkey menu, in Tools > Greasemonkey > Greasemonkey Options, or the Preferences button for Greasemonkey in the Add-Ons manager.